summaryrefslogtreecommitdiff
path: root/ghc/lib
diff options
context:
space:
mode:
Diffstat (limited to 'ghc/lib')
-rw-r--r--ghc/lib/Jmakefile1159
-rw-r--r--ghc/lib/README22
-rw-r--r--ghc/lib/ghc/BSD.hi72
-rw-r--r--ghc/lib/ghc/BSD.lhs390
-rw-r--r--ghc/lib/ghc/BSD_mc.hi72
-rw-r--r--ghc/lib/ghc/BSD_mg.hi72
-rw-r--r--ghc/lib/ghc/BSD_mp.hi72
-rw-r--r--ghc/lib/ghc/BSD_p.hi72
-rw-r--r--ghc/lib/ghc/BSD_t.hi72
-rw-r--r--ghc/lib/ghc/Bag.hi26
-rw-r--r--ghc/lib/ghc/Bag.lhs110
-rw-r--r--ghc/lib/ghc/Bag_mc.hi26
-rw-r--r--ghc/lib/ghc/Bag_mg.hi26
-rw-r--r--ghc/lib/ghc/Bag_mp.hi26
-rw-r--r--ghc/lib/ghc/Bag_mr.hi26
-rw-r--r--ghc/lib/ghc/Bag_mt.hi26
-rw-r--r--ghc/lib/ghc/Bag_p.hi26
-rw-r--r--ghc/lib/ghc/Bag_t.hi26
-rw-r--r--ghc/lib/ghc/BitSet.hi22
-rw-r--r--ghc/lib/ghc/BitSet.lhs197
-rw-r--r--ghc/lib/ghc/BitSet_mc.hi22
-rw-r--r--ghc/lib/ghc/BitSet_mg.hi22
-rw-r--r--ghc/lib/ghc/BitSet_mp.hi22
-rw-r--r--ghc/lib/ghc/BitSet_mr.hi22
-rw-r--r--ghc/lib/ghc/BitSet_mt.hi22
-rw-r--r--ghc/lib/ghc/BitSet_p.hi22
-rw-r--r--ghc/lib/ghc/BitSet_t.hi22
-rw-r--r--ghc/lib/ghc/CError.hi35
-rw-r--r--ghc/lib/ghc/CError.lhs285
-rw-r--r--ghc/lib/ghc/CError_mc.hi35
-rw-r--r--ghc/lib/ghc/CError_mg.hi35
-rw-r--r--ghc/lib/ghc/CError_mp.hi35
-rw-r--r--ghc/lib/ghc/CError_p.hi35
-rw-r--r--ghc/lib/ghc/CError_t.hi35
-rw-r--r--ghc/lib/ghc/CharSeq.hi26
-rw-r--r--ghc/lib/ghc/CharSeq.lhs282
-rw-r--r--ghc/lib/ghc/CharSeq_mc.hi26
-rw-r--r--ghc/lib/ghc/CharSeq_mg.hi26
-rw-r--r--ghc/lib/ghc/CharSeq_mp.hi26
-rw-r--r--ghc/lib/ghc/CharSeq_mr.hi26
-rw-r--r--ghc/lib/ghc/CharSeq_mt.hi26
-rw-r--r--ghc/lib/ghc/CharSeq_p.hi26
-rw-r--r--ghc/lib/ghc/CharSeq_t.hi26
-rw-r--r--ghc/lib/ghc/FiniteMap.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap.lhs851
-rw-r--r--ghc/lib/ghc/FiniteMap_mc.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap_mg.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap_mp.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap_mr.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap_mt.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap_p.hi55
-rw-r--r--ghc/lib/ghc/FiniteMap_t.hi55
-rw-r--r--ghc/lib/ghc/ListSetOps.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps.lhs95
-rw-r--r--ghc/lib/ghc/ListSetOps_mc.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps_mg.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps_mp.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps_mr.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps_mt.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps_p.hi13
-rw-r--r--ghc/lib/ghc/ListSetOps_t.hi13
-rw-r--r--ghc/lib/ghc/MatchPS.hi38
-rw-r--r--ghc/lib/ghc/MatchPS.lhs494
-rw-r--r--ghc/lib/ghc/MatchPS_mc.hi38
-rw-r--r--ghc/lib/ghc/MatchPS_mg.hi38
-rw-r--r--ghc/lib/ghc/MatchPS_mp.hi38
-rw-r--r--ghc/lib/ghc/MatchPS_p.hi38
-rw-r--r--ghc/lib/ghc/MatchPS_t.hi38
-rw-r--r--ghc/lib/ghc/Maybes.hi39
-rw-r--r--ghc/lib/ghc/Maybes.lhs222
-rw-r--r--ghc/lib/ghc/Maybes_mc.hi39
-rw-r--r--ghc/lib/ghc/Maybes_mg.hi39
-rw-r--r--ghc/lib/ghc/Maybes_mp.hi39
-rw-r--r--ghc/lib/ghc/Maybes_mr.hi39
-rw-r--r--ghc/lib/ghc/Maybes_mt.hi39
-rw-r--r--ghc/lib/ghc/Maybes_p.hi39
-rw-r--r--ghc/lib/ghc/Maybes_t.hi39
-rw-r--r--ghc/lib/ghc/PackedString.hi75
-rw-r--r--ghc/lib/ghc/PackedString.lhs97
-rw-r--r--ghc/lib/ghc/PackedString_mc.hi75
-rw-r--r--ghc/lib/ghc/PackedString_mg.hi75
-rw-r--r--ghc/lib/ghc/PackedString_mp.hi75
-rw-r--r--ghc/lib/ghc/PackedString_mr.hi75
-rw-r--r--ghc/lib/ghc/PackedString_mt.hi75
-rw-r--r--ghc/lib/ghc/PackedString_p.hi75
-rw-r--r--ghc/lib/ghc/PackedString_t.hi75
-rw-r--r--ghc/lib/ghc/Pretty.hi67
-rw-r--r--ghc/lib/ghc/Pretty.lhs439
-rw-r--r--ghc/lib/ghc/Pretty_mc.hi67
-rw-r--r--ghc/lib/ghc/Pretty_mg.hi67
-rw-r--r--ghc/lib/ghc/Pretty_mp.hi67
-rw-r--r--ghc/lib/ghc/Pretty_mr.hi67
-rw-r--r--ghc/lib/ghc/Pretty_mt.hi67
-rw-r--r--ghc/lib/ghc/Pretty_p.hi67
-rw-r--r--ghc/lib/ghc/Pretty_t.hi67
-rw-r--r--ghc/lib/ghc/Readline.hi44
-rw-r--r--ghc/lib/ghc/Readline.lhs325
-rw-r--r--ghc/lib/ghc/Readline_mc.hi44
-rw-r--r--ghc/lib/ghc/Readline_mg.hi44
-rw-r--r--ghc/lib/ghc/Readline_mp.hi44
-rw-r--r--ghc/lib/ghc/Readline_p.hi44
-rw-r--r--ghc/lib/ghc/Readline_t.hi44
-rw-r--r--ghc/lib/ghc/Regex.hi22
-rw-r--r--ghc/lib/ghc/Regex.lhs389
-rw-r--r--ghc/lib/ghc/Regex_mc.hi22
-rw-r--r--ghc/lib/ghc/Regex_mg.hi22
-rw-r--r--ghc/lib/ghc/Regex_mp.hi22
-rw-r--r--ghc/lib/ghc/Regex_p.hi22
-rw-r--r--ghc/lib/ghc/Regex_t.hi22
-rw-r--r--ghc/lib/ghc/Set.hi36
-rw-r--r--ghc/lib/ghc/Set.lhs103
-rw-r--r--ghc/lib/ghc/Set_mc.hi36
-rw-r--r--ghc/lib/ghc/Set_mg.hi36
-rw-r--r--ghc/lib/ghc/Set_mp.hi36
-rw-r--r--ghc/lib/ghc/Set_mr.hi36
-rw-r--r--ghc/lib/ghc/Set_mt.hi36
-rw-r--r--ghc/lib/ghc/Set_p.hi36
-rw-r--r--ghc/lib/ghc/Set_t.hi36
-rw-r--r--ghc/lib/ghc/Socket.hi23
-rw-r--r--ghc/lib/ghc/Socket.lhs189
-rw-r--r--ghc/lib/ghc/SocketPrim.hi125
-rw-r--r--ghc/lib/ghc/SocketPrim.lhs966
-rw-r--r--ghc/lib/ghc/SocketPrim_mc.hi125
-rw-r--r--ghc/lib/ghc/SocketPrim_mg.hi125
-rw-r--r--ghc/lib/ghc/SocketPrim_mp.hi125
-rw-r--r--ghc/lib/ghc/SocketPrim_p.hi125
-rw-r--r--ghc/lib/ghc/SocketPrim_t.hi125
-rw-r--r--ghc/lib/ghc/Socket_mc.hi23
-rw-r--r--ghc/lib/ghc/Socket_mg.hi23
-rw-r--r--ghc/lib/ghc/Socket_mp.hi23
-rw-r--r--ghc/lib/ghc/Socket_p.hi23
-rw-r--r--ghc/lib/ghc/Socket_t.hi23
-rw-r--r--ghc/lib/ghc/Util.hi65
-rw-r--r--ghc/lib/ghc/Util.lhs1056
-rw-r--r--ghc/lib/ghc/Util_mc.hi65
-rw-r--r--ghc/lib/ghc/Util_mg.hi65
-rw-r--r--ghc/lib/ghc/Util_mp.hi65
-rw-r--r--ghc/lib/ghc/Util_mr.hi65
-rw-r--r--ghc/lib/ghc/Util_mt.hi65
-rw-r--r--ghc/lib/ghc/Util_p.hi65
-rw-r--r--ghc/lib/ghc/Util_t.hi65
-rw-r--r--ghc/lib/glaExts/ByteOps.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps.lhs147
-rw-r--r--ghc/lib/glaExts/ByteOps_mc.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps_mg.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps_mp.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps_mr.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps_mt.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps_p.hi24
-rw-r--r--ghc/lib/glaExts/ByteOps_t.hi24
-rw-r--r--ghc/lib/glaExts/Jmakefile8
-rw-r--r--ghc/lib/glaExts/MainIO.lhs25
-rw-r--r--ghc/lib/glaExts/MainIO13.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13.lhs40
-rw-r--r--ghc/lib/glaExts/MainIO13_mc.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13_mg.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13_mp.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13_mr.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13_mt.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13_p.hi6
-rw-r--r--ghc/lib/glaExts/MainIO13_t.hi6
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO.lhs346
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_mc.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_mg.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_mp.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_mr.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_mt.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_p.hi17
-rw-r--r--ghc/lib/glaExts/PreludeDialogueIO_t.hi17
-rw-r--r--ghc/lib/glaExts/PreludeErrIO.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO.lhs18
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_mc.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_mg.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_mp.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_mr.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_mt.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_p.hi6
-rw-r--r--ghc/lib/glaExts/PreludeErrIO_t.hi6
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc.lhs115
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_mc.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_mg.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_mp.hi8
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_mr.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_mt.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_p.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaMisc_t.hi23
-rw-r--r--ghc/lib/glaExts/PreludeGlaST.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST.lhs712
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_mc.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_mg.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_mp.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_mr.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_mt.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_p.hi187
-rw-r--r--ghc/lib/glaExts/PreludeGlaST_t.hi187
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_1s.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_2s.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_du.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_i.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_j.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_k.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_l.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_m.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_mc.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_mg.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_mp.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_mr.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_mt.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_n.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_o.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_p.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMain13_help_t.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_1s.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_2s.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_du.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_i.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_j.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_k.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_l.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_m.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_mc.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_mg.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_mp.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_mr.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_mt.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_n.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_o.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_p.hi5
-rw-r--r--ghc/lib/glaExts/PreludeMainIO_help_t.hi5
-rw-r--r--ghc/lib/glaExts/PreludePrimIO.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO.lhs293
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_mc.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_mg.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_mp.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_mr.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_mt.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_p.hi82
-rw-r--r--ghc/lib/glaExts/PreludePrimIO_t.hi82
-rw-r--r--ghc/lib/glaExts/Stdio.hi30
-rw-r--r--ghc/lib/glaExts/Stdio.lhs116
-rw-r--r--ghc/lib/glaExts/Stdio_mc.hi30
-rw-r--r--ghc/lib/glaExts/Stdio_mg.hi30
-rw-r--r--ghc/lib/glaExts/Stdio_mp.hi30
-rw-r--r--ghc/lib/glaExts/Stdio_mr.hi30
-rw-r--r--ghc/lib/glaExts/Stdio_mt.hi30
-rw-r--r--ghc/lib/glaExts/Stdio_p.hi30
-rw-r--r--ghc/lib/glaExts/Stdio_t.hi30
-rw-r--r--ghc/lib/glaExts/lazyimp.lit70
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime.lhs31
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mc.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mg.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mp.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mr.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mt.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_p.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_t.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory.lhs376
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mc.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mg.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mp.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mr.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mt.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_p.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_t.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibPosix.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix.lhs101
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB.lhs135
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mc.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mg.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mp.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mr.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mt.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_p.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_t.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr.lhs164
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mc.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mg.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mp.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mr.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mt.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_p.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_t.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles.lhs559
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mc.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mg.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mp.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mr.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mt.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_p.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_t.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO.lhs258
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mc.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mg.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mp.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mr.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mt.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_p.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_t.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv.lhs325
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim.lhs543
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY.lhs578
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mc.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mg.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mp.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mr.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mt.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_p.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_t.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil.lhs123
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mc.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mg.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mp.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mr.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mt.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_p.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_t.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mc.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mg.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mp.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mr.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mt.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_p.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_t.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibSystem.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem.lhs103
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mc.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mg.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mp.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mr.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mt.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_p.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_t.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibTime.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime.lhs232
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mc.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mg.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mp.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mr.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mt.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_p.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_t.hi52
-rw-r--r--ghc/lib/hbc/Algebra.hi162
-rw-r--r--ghc/lib/hbc/Algebra.hs145
-rw-r--r--ghc/lib/hbc/Algebra_mc.hi162
-rw-r--r--ghc/lib/hbc/Algebra_mg.hi162
-rw-r--r--ghc/lib/hbc/Algebra_mp.hi162
-rw-r--r--ghc/lib/hbc/Algebra_mr.hi162
-rw-r--r--ghc/lib/hbc/Algebra_mt.hi162
-rw-r--r--ghc/lib/hbc/Algebra_p.hi162
-rw-r--r--ghc/lib/hbc/Algebra_t.hi162
-rw-r--r--ghc/lib/hbc/Hash.hi69
-rw-r--r--ghc/lib/hbc/Hash.hs100
-rw-r--r--ghc/lib/hbc/Hash_mc.hi69
-rw-r--r--ghc/lib/hbc/Hash_mg.hi69
-rw-r--r--ghc/lib/hbc/Hash_mp.hi69
-rw-r--r--ghc/lib/hbc/Hash_mr.hi69
-rw-r--r--ghc/lib/hbc/Hash_mt.hi69
-rw-r--r--ghc/lib/hbc/Hash_p.hi69
-rw-r--r--ghc/lib/hbc/Hash_t.hi69
-rw-r--r--ghc/lib/hbc/ListUtil.hi36
-rw-r--r--ghc/lib/hbc/ListUtil.hs109
-rw-r--r--ghc/lib/hbc/ListUtil_mc.hi36
-rw-r--r--ghc/lib/hbc/ListUtil_mg.hi36
-rw-r--r--ghc/lib/hbc/ListUtil_mp.hi36
-rw-r--r--ghc/lib/hbc/ListUtil_mr.hi36
-rw-r--r--ghc/lib/hbc/ListUtil_mt.hi36
-rw-r--r--ghc/lib/hbc/ListUtil_p.hi36
-rw-r--r--ghc/lib/hbc/ListUtil_t.hi36
-rw-r--r--ghc/lib/hbc/Miranda.hi24
-rw-r--r--ghc/lib/hbc/Miranda.hs90
-rw-r--r--ghc/lib/hbc/Miranda_mc.hi24
-rw-r--r--ghc/lib/hbc/Miranda_mg.hi24
-rw-r--r--ghc/lib/hbc/Miranda_mp.hi24
-rw-r--r--ghc/lib/hbc/Miranda_mr.hi24
-rw-r--r--ghc/lib/hbc/Miranda_mt.hi24
-rw-r--r--ghc/lib/hbc/Miranda_p.hi24
-rw-r--r--ghc/lib/hbc/Miranda_t.hi24
-rw-r--r--ghc/lib/hbc/NameSupply.hi13
-rw-r--r--ghc/lib/hbc/NameSupply.hs67
-rw-r--r--ghc/lib/hbc/NameSupply_mc.hi13
-rw-r--r--ghc/lib/hbc/NameSupply_mg.hi13
-rw-r--r--ghc/lib/hbc/NameSupply_mp.hi13
-rw-r--r--ghc/lib/hbc/NameSupply_mr.hi13
-rw-r--r--ghc/lib/hbc/NameSupply_mt.hi13
-rw-r--r--ghc/lib/hbc/NameSupply_p.hi13
-rw-r--r--ghc/lib/hbc/NameSupply_t.hi13
-rw-r--r--ghc/lib/hbc/Native.hi71
-rw-r--r--ghc/lib/hbc/Native.hs356
-rw-r--r--ghc/lib/hbc/Native_mc.hi71
-rw-r--r--ghc/lib/hbc/Native_mg.hi71
-rw-r--r--ghc/lib/hbc/Native_mp.hi71
-rw-r--r--ghc/lib/hbc/Native_mr.hi71
-rw-r--r--ghc/lib/hbc/Native_mt.hi71
-rw-r--r--ghc/lib/hbc/Native_p.hi71
-rw-r--r--ghc/lib/hbc/Native_t.hi71
-rw-r--r--ghc/lib/hbc/Number.hi103
-rw-r--r--ghc/lib/hbc/Number.hs124
-rw-r--r--ghc/lib/hbc/Number_mc.hi103
-rw-r--r--ghc/lib/hbc/Number_mg.hi103
-rw-r--r--ghc/lib/hbc/Number_mp.hi103
-rw-r--r--ghc/lib/hbc/Number_mr.hi103
-rw-r--r--ghc/lib/hbc/Number_mt.hi103
-rw-r--r--ghc/lib/hbc/Number_p.hi103
-rw-r--r--ghc/lib/hbc/Number_t.hi103
-rw-r--r--ghc/lib/hbc/Parse.hi69
-rw-r--r--ghc/lib/hbc/Parse.hs293
-rw-r--r--ghc/lib/hbc/Parse_mc.hi69
-rw-r--r--ghc/lib/hbc/Parse_mg.hi69
-rw-r--r--ghc/lib/hbc/Parse_mp.hi69
-rw-r--r--ghc/lib/hbc/Parse_mr.hi69
-rw-r--r--ghc/lib/hbc/Parse_mt.hi69
-rw-r--r--ghc/lib/hbc/Parse_p.hi69
-rw-r--r--ghc/lib/hbc/Parse_t.hi69
-rw-r--r--ghc/lib/hbc/Pretty.hi21
-rw-r--r--ghc/lib/hbc/Pretty.hs86
-rw-r--r--ghc/lib/hbc/Pretty_mc.hi21
-rw-r--r--ghc/lib/hbc/Pretty_mg.hi21
-rw-r--r--ghc/lib/hbc/Pretty_mp.hi21
-rw-r--r--ghc/lib/hbc/Pretty_mr.hi21
-rw-r--r--ghc/lib/hbc/Pretty_mt.hi21
-rw-r--r--ghc/lib/hbc/Pretty_p.hi21
-rw-r--r--ghc/lib/hbc/Pretty_t.hi21
-rw-r--r--ghc/lib/hbc/Printf.hi6
-rw-r--r--ghc/lib/hbc/Printf.hs221
-rw-r--r--ghc/lib/hbc/Printf_mc.hi6
-rw-r--r--ghc/lib/hbc/Printf_mg.hi6
-rw-r--r--ghc/lib/hbc/Printf_mp.hi6
-rw-r--r--ghc/lib/hbc/Printf_mr.hi6
-rw-r--r--ghc/lib/hbc/Printf_mt.hi6
-rw-r--r--ghc/lib/hbc/Printf_p.hi6
-rw-r--r--ghc/lib/hbc/Printf_t.hi6
-rw-r--r--ghc/lib/hbc/QSort.hi7
-rw-r--r--ghc/lib/hbc/QSort.hs47
-rw-r--r--ghc/lib/hbc/QSort_mc.hi7
-rw-r--r--ghc/lib/hbc/QSort_mg.hi7
-rw-r--r--ghc/lib/hbc/QSort_mp.hi7
-rw-r--r--ghc/lib/hbc/QSort_mr.hi7
-rw-r--r--ghc/lib/hbc/QSort_mt.hi7
-rw-r--r--ghc/lib/hbc/QSort_p.hi7
-rw-r--r--ghc/lib/hbc/QSort_t.hi7
-rw-r--r--ghc/lib/hbc/Random.hi9
-rw-r--r--ghc/lib/hbc/Random.hs59
-rw-r--r--ghc/lib/hbc/Random_mc.hi9
-rw-r--r--ghc/lib/hbc/Random_mg.hi9
-rw-r--r--ghc/lib/hbc/Random_mp.hi9
-rw-r--r--ghc/lib/hbc/Random_mr.hi9
-rw-r--r--ghc/lib/hbc/Random_mt.hi9
-rw-r--r--ghc/lib/hbc/Random_p.hi9
-rw-r--r--ghc/lib/hbc/Random_t.hi9
-rw-r--r--ghc/lib/hbc/SimpleLex.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex.hs26
-rw-r--r--ghc/lib/hbc/SimpleLex_mc.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex_mg.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex_mp.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex_mr.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex_mt.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex_p.hi5
-rw-r--r--ghc/lib/hbc/SimpleLex_t.hi5
-rw-r--r--ghc/lib/hbc/Time.hi29
-rw-r--r--ghc/lib/hbc/Time.hs53
-rw-r--r--ghc/lib/hbc/Time_mc.hi29
-rw-r--r--ghc/lib/hbc/Time_mg.hi29
-rw-r--r--ghc/lib/hbc/Time_mp.hi29
-rw-r--r--ghc/lib/hbc/Time_mr.hi29
-rw-r--r--ghc/lib/hbc/Time_mt.hi29
-rw-r--r--ghc/lib/hbc/Time_p.hi29
-rw-r--r--ghc/lib/hbc/Time_t.hi29
-rw-r--r--ghc/lib/hbc/Trace.hi5
-rw-r--r--ghc/lib/hbc/Trace.hs2
-rw-r--r--ghc/lib/hbc/Trace_mc.hi5
-rw-r--r--ghc/lib/hbc/Trace_mg.hi5
-rw-r--r--ghc/lib/hbc/Trace_mp.hi5
-rw-r--r--ghc/lib/hbc/Trace_p.hi5
-rw-r--r--ghc/lib/hbc/Trace_t.hi5
-rw-r--r--ghc/lib/hbc/Word.hi171
-rw-r--r--ghc/lib/hbc/Word.hs156
-rw-r--r--ghc/lib/hbc/Word_mc.hi171
-rw-r--r--ghc/lib/hbc/Word_mg.hi171
-rw-r--r--ghc/lib/hbc/Word_mp.hi171
-rw-r--r--ghc/lib/hbc/Word_mr.hi171
-rw-r--r--ghc/lib/hbc/Word_mt.hi171
-rw-r--r--ghc/lib/hbc/Word_p.hi171
-rw-r--r--ghc/lib/hbc/Word_t.hi171
-rw-r--r--ghc/lib/make_extra_deps31
-rw-r--r--ghc/lib/prelude/Builtin.hi13
-rw-r--r--ghc/lib/prelude/Builtin.hs114
-rw-r--r--ghc/lib/prelude/Builtin_mc.hi13
-rw-r--r--ghc/lib/prelude/Builtin_mg.hi13
-rw-r--r--ghc/lib/prelude/Builtin_mp.hi13
-rw-r--r--ghc/lib/prelude/Builtin_mr.hi13
-rw-r--r--ghc/lib/prelude/Builtin_mt.hi13
-rw-r--r--ghc/lib/prelude/Builtin_p.hi13
-rw-r--r--ghc/lib/prelude/Builtin_t.hi13
-rw-r--r--ghc/lib/prelude/Channel.hi19
-rw-r--r--ghc/lib/prelude/Channel.lhs120
-rw-r--r--ghc/lib/prelude/ChannelVar.hi14
-rw-r--r--ghc/lib/prelude/ChannelVar.lhs58
-rw-r--r--ghc/lib/prelude/ChannelVar_mc.hi14
-rw-r--r--ghc/lib/prelude/ChannelVar_mg.hi14
-rw-r--r--ghc/lib/prelude/ChannelVar_mp.hi14
-rw-r--r--ghc/lib/prelude/ChannelVar_p.hi14
-rw-r--r--ghc/lib/prelude/ChannelVar_t.hi14
-rw-r--r--ghc/lib/prelude/Channel_mc.hi19
-rw-r--r--ghc/lib/prelude/Channel_mg.hi19
-rw-r--r--ghc/lib/prelude/Channel_mp.hi19
-rw-r--r--ghc/lib/prelude/Channel_p.hi19
-rw-r--r--ghc/lib/prelude/Channel_t.hi19
-rw-r--r--ghc/lib/prelude/Cls.hi248
-rw-r--r--ghc/lib/prelude/Cls.hs200
-rw-r--r--ghc/lib/prelude/Cls_mc.hi248
-rw-r--r--ghc/lib/prelude/Cls_mg.hi248
-rw-r--r--ghc/lib/prelude/Cls_mp.hi248
-rw-r--r--ghc/lib/prelude/Cls_mr.hi248
-rw-r--r--ghc/lib/prelude/Cls_mt.hi248
-rw-r--r--ghc/lib/prelude/Cls_p.hi248
-rw-r--r--ghc/lib/prelude/Cls_t.hi248
-rw-r--r--ghc/lib/prelude/Concurrent.hi93
-rw-r--r--ghc/lib/prelude/Concurrent.lhs59
-rw-r--r--ghc/lib/prelude/Concurrent_mc.hi93
-rw-r--r--ghc/lib/prelude/Concurrent_mg.hi93
-rw-r--r--ghc/lib/prelude/Concurrent_mp.hi93
-rw-r--r--ghc/lib/prelude/Concurrent_p.hi93
-rw-r--r--ghc/lib/prelude/Concurrent_t.hi93
-rw-r--r--ghc/lib/prelude/Core.hi45
-rw-r--r--ghc/lib/prelude/Core.hs326
-rw-r--r--ghc/lib/prelude/Core_mc.hi45
-rw-r--r--ghc/lib/prelude/Core_mg.hi45
-rw-r--r--ghc/lib/prelude/Core_mp.hi45
-rw-r--r--ghc/lib/prelude/Core_mr.hi45
-rw-r--r--ghc/lib/prelude/Core_mt.hi45
-rw-r--r--ghc/lib/prelude/Core_p.hi45
-rw-r--r--ghc/lib/prelude/Core_t.hi45
-rw-r--r--ghc/lib/prelude/FoldrBuild.hs20
-rw-r--r--ghc/lib/prelude/IArray.hi45
-rw-r--r--ghc/lib/prelude/IArray.hs285
-rw-r--r--ghc/lib/prelude/IArray_mc.hi45
-rw-r--r--ghc/lib/prelude/IArray_mg.hi45
-rw-r--r--ghc/lib/prelude/IArray_mp.hi45
-rw-r--r--ghc/lib/prelude/IArray_mr.hi45
-rw-r--r--ghc/lib/prelude/IArray_mt.hi45
-rw-r--r--ghc/lib/prelude/IArray_p.hi45
-rw-r--r--ghc/lib/prelude/IArray_t.hi45
-rw-r--r--ghc/lib/prelude/IBool.hi33
-rw-r--r--ghc/lib/prelude/IBool.hs71
-rw-r--r--ghc/lib/prelude/IBool_mc.hi33
-rw-r--r--ghc/lib/prelude/IBool_mg.hi33
-rw-r--r--ghc/lib/prelude/IBool_mp.hi33
-rw-r--r--ghc/lib/prelude/IBool_mr.hi33
-rw-r--r--ghc/lib/prelude/IBool_mt.hi33
-rw-r--r--ghc/lib/prelude/IBool_p.hi33
-rw-r--r--ghc/lib/prelude/IBool_t.hi33
-rw-r--r--ghc/lib/prelude/IChar.hi38
-rw-r--r--ghc/lib/prelude/IChar.hs123
-rw-r--r--ghc/lib/prelude/IChar_mc.hi38
-rw-r--r--ghc/lib/prelude/IChar_mg.hi38
-rw-r--r--ghc/lib/prelude/IChar_mp.hi38
-rw-r--r--ghc/lib/prelude/IChar_mr.hi38
-rw-r--r--ghc/lib/prelude/IChar_mt.hi38
-rw-r--r--ghc/lib/prelude/IChar_p.hi38
-rw-r--r--ghc/lib/prelude/IChar_t.hi38
-rw-r--r--ghc/lib/prelude/IComplex.hi70
-rw-r--r--ghc/lib/prelude/IComplex.hs168
-rw-r--r--ghc/lib/prelude/IComplex_mc.hi70
-rw-r--r--ghc/lib/prelude/IComplex_mg.hi70
-rw-r--r--ghc/lib/prelude/IComplex_mp.hi70
-rw-r--r--ghc/lib/prelude/IComplex_mr.hi70
-rw-r--r--ghc/lib/prelude/IComplex_mt.hi70
-rw-r--r--ghc/lib/prelude/IComplex_p.hi70
-rw-r--r--ghc/lib/prelude/IComplex_t.hi70
-rw-r--r--ghc/lib/prelude/IDouble.hi88
-rw-r--r--ghc/lib/prelude/IDouble.hs299
-rw-r--r--ghc/lib/prelude/IDouble_mc.hi88
-rw-r--r--ghc/lib/prelude/IDouble_mg.hi88
-rw-r--r--ghc/lib/prelude/IDouble_mp.hi88
-rw-r--r--ghc/lib/prelude/IDouble_mr.hi88
-rw-r--r--ghc/lib/prelude/IDouble_mt.hi88
-rw-r--r--ghc/lib/prelude/IDouble_p.hi88
-rw-r--r--ghc/lib/prelude/IDouble_t.hi88
-rw-r--r--ghc/lib/prelude/IFloat.hi88
-rw-r--r--ghc/lib/prelude/IFloat.hs154
-rw-r--r--ghc/lib/prelude/IFloat_mc.hi88
-rw-r--r--ghc/lib/prelude/IFloat_mg.hi88
-rw-r--r--ghc/lib/prelude/IFloat_mp.hi88
-rw-r--r--ghc/lib/prelude/IFloat_mr.hi88
-rw-r--r--ghc/lib/prelude/IFloat_mt.hi88
-rw-r--r--ghc/lib/prelude/IFloat_p.hi88
-rw-r--r--ghc/lib/prelude/IFloat_t.hi88
-rw-r--r--ghc/lib/prelude/IInt.hi110
-rw-r--r--ghc/lib/prelude/IInt.hs299
-rw-r--r--ghc/lib/prelude/IInt_mc.hi110
-rw-r--r--ghc/lib/prelude/IInt_mg.hi110
-rw-r--r--ghc/lib/prelude/IInt_mp.hi106
-rw-r--r--ghc/lib/prelude/IInt_mr.hi110
-rw-r--r--ghc/lib/prelude/IInt_mt.hi110
-rw-r--r--ghc/lib/prelude/IInt_p.hi110
-rw-r--r--ghc/lib/prelude/IInt_t.hi110
-rw-r--r--ghc/lib/prelude/IInteger.hi67
-rw-r--r--ghc/lib/prelude/IInteger.hs162
-rw-r--r--ghc/lib/prelude/IInteger_mc.hi67
-rw-r--r--ghc/lib/prelude/IInteger_mg.hi67
-rw-r--r--ghc/lib/prelude/IInteger_mp.hi67
-rw-r--r--ghc/lib/prelude/IInteger_mr.hi67
-rw-r--r--ghc/lib/prelude/IInteger_mt.hi67
-rw-r--r--ghc/lib/prelude/IInteger_p.hi67
-rw-r--r--ghc/lib/prelude/IInteger_t.hi67
-rw-r--r--ghc/lib/prelude/IList.hi52
-rw-r--r--ghc/lib/prelude/IList.hs63
-rw-r--r--ghc/lib/prelude/IList_mc.hi52
-rw-r--r--ghc/lib/prelude/IList_mg.hi52
-rw-r--r--ghc/lib/prelude/IList_mp.hi52
-rw-r--r--ghc/lib/prelude/IList_mr.hi52
-rw-r--r--ghc/lib/prelude/IList_mt.hi52
-rw-r--r--ghc/lib/prelude/IList_p.hi52
-rw-r--r--ghc/lib/prelude/IList_t.hi52
-rw-r--r--ghc/lib/prelude/IO.hi71
-rw-r--r--ghc/lib/prelude/IO.hs137
-rw-r--r--ghc/lib/prelude/IO_mc.hi71
-rw-r--r--ghc/lib/prelude/IO_mg.hi71
-rw-r--r--ghc/lib/prelude/IO_mp.hi71
-rw-r--r--ghc/lib/prelude/IO_mr.hi71
-rw-r--r--ghc/lib/prelude/IO_mt.hi71
-rw-r--r--ghc/lib/prelude/IO_p.hi71
-rw-r--r--ghc/lib/prelude/IO_t.hi71
-rw-r--r--ghc/lib/prelude/IRatio.hi83
-rw-r--r--ghc/lib/prelude/IRatio.hs156
-rw-r--r--ghc/lib/prelude/IRatio_mc.hi83
-rw-r--r--ghc/lib/prelude/IRatio_mg.hi83
-rw-r--r--ghc/lib/prelude/IRatio_mp.hi83
-rw-r--r--ghc/lib/prelude/IRatio_mr.hi83
-rw-r--r--ghc/lib/prelude/IRatio_mt.hi83
-rw-r--r--ghc/lib/prelude/IRatio_p.hi83
-rw-r--r--ghc/lib/prelude/IRatio_t.hi83
-rw-r--r--ghc/lib/prelude/ITup0.hi34
-rw-r--r--ghc/lib/prelude/ITup0.hs43
-rw-r--r--ghc/lib/prelude/ITup0_mc.hi34
-rw-r--r--ghc/lib/prelude/ITup0_mg.hi34
-rw-r--r--ghc/lib/prelude/ITup0_mp.hi34
-rw-r--r--ghc/lib/prelude/ITup0_mr.hi34
-rw-r--r--ghc/lib/prelude/ITup0_mt.hi34
-rw-r--r--ghc/lib/prelude/ITup0_p.hi34
-rw-r--r--ghc/lib/prelude/ITup0_t.hi34
-rw-r--r--ghc/lib/prelude/ITup2.hi56
-rw-r--r--ghc/lib/prelude/ITup2.hs69
-rw-r--r--ghc/lib/prelude/ITup2_mc.hi56
-rw-r--r--ghc/lib/prelude/ITup2_mg.hi56
-rw-r--r--ghc/lib/prelude/ITup2_mp.hi56
-rw-r--r--ghc/lib/prelude/ITup2_mr.hi56
-rw-r--r--ghc/lib/prelude/ITup2_mt.hi56
-rw-r--r--ghc/lib/prelude/ITup2_p.hi56
-rw-r--r--ghc/lib/prelude/ITup2_t.hi56
-rw-r--r--ghc/lib/prelude/ITup3.hi12
-rw-r--r--ghc/lib/prelude/ITup3.hs91
-rw-r--r--ghc/lib/prelude/ITup3_mc.hi12
-rw-r--r--ghc/lib/prelude/ITup3_mg.hi12
-rw-r--r--ghc/lib/prelude/ITup3_mp.hi12
-rw-r--r--ghc/lib/prelude/ITup3_mr.hi12
-rw-r--r--ghc/lib/prelude/ITup3_mt.hi12
-rw-r--r--ghc/lib/prelude/ITup3_p.hi12
-rw-r--r--ghc/lib/prelude/ITup3_t.hi12
-rw-r--r--ghc/lib/prelude/ITup4.hi12
-rw-r--r--ghc/lib/prelude/ITup4.hs100
-rw-r--r--ghc/lib/prelude/ITup4_mc.hi12
-rw-r--r--ghc/lib/prelude/ITup4_mg.hi12
-rw-r--r--ghc/lib/prelude/ITup4_mp.hi12
-rw-r--r--ghc/lib/prelude/ITup4_mr.hi12
-rw-r--r--ghc/lib/prelude/ITup4_mt.hi12
-rw-r--r--ghc/lib/prelude/ITup4_p.hi12
-rw-r--r--ghc/lib/prelude/ITup4_t.hi12
-rw-r--r--ghc/lib/prelude/ITup5.hi12
-rw-r--r--ghc/lib/prelude/ITup5.hs109
-rw-r--r--ghc/lib/prelude/ITup5_mc.hi12
-rw-r--r--ghc/lib/prelude/ITup5_mg.hi12
-rw-r--r--ghc/lib/prelude/ITup5_mp.hi12
-rw-r--r--ghc/lib/prelude/ITup5_mr.hi12
-rw-r--r--ghc/lib/prelude/ITup5_mt.hi12
-rw-r--r--ghc/lib/prelude/ITup5_p.hi12
-rw-r--r--ghc/lib/prelude/ITup5_t.hi12
-rw-r--r--ghc/lib/prelude/List.hi139
-rw-r--r--ghc/lib/prelude/List.hs799
-rw-r--r--ghc/lib/prelude/List_mc.hi139
-rw-r--r--ghc/lib/prelude/List_mg.hi139
-rw-r--r--ghc/lib/prelude/List_mp.hi139
-rw-r--r--ghc/lib/prelude/List_mr.hi139
-rw-r--r--ghc/lib/prelude/List_mt.hi139
-rw-r--r--ghc/lib/prelude/List_p.hi139
-rw-r--r--ghc/lib/prelude/List_t.hi139
-rw-r--r--ghc/lib/prelude/Merge.hi9
-rw-r--r--ghc/lib/prelude/Merge.lhs117
-rw-r--r--ghc/lib/prelude/Merge_mc.hi9
-rw-r--r--ghc/lib/prelude/Merge_mg.hi9
-rw-r--r--ghc/lib/prelude/Merge_mp.hi9
-rw-r--r--ghc/lib/prelude/Merge_p.hi9
-rw-r--r--ghc/lib/prelude/Merge_t.hi9
-rw-r--r--ghc/lib/prelude/PS.hi104
-rw-r--r--ghc/lib/prelude/PS.lhs681
-rw-r--r--ghc/lib/prelude/PS_mc.hi104
-rw-r--r--ghc/lib/prelude/PS_mg.hi104
-rw-r--r--ghc/lib/prelude/PS_mp.hi104
-rw-r--r--ghc/lib/prelude/PS_mr.hi104
-rw-r--r--ghc/lib/prelude/PS_mt.hi104
-rw-r--r--ghc/lib/prelude/PS_p.hi104
-rw-r--r--ghc/lib/prelude/PS_t.hi104
-rw-r--r--ghc/lib/prelude/Parallel.hi9
-rw-r--r--ghc/lib/prelude/Parallel.lhs35
-rw-r--r--ghc/lib/prelude/Parallel_mc.hi9
-rw-r--r--ghc/lib/prelude/Parallel_mg.hi9
-rw-r--r--ghc/lib/prelude/Parallel_mp.hi9
-rw-r--r--ghc/lib/prelude/Parallel_p.hi9
-rw-r--r--ghc/lib/prelude/Parallel_t.hi9
-rw-r--r--ghc/lib/prelude/Prel.hi87
-rw-r--r--ghc/lib/prelude/Prel.hs410
-rw-r--r--ghc/lib/prelude/Prel13.hi509
-rw-r--r--ghc/lib/prelude/Prel13.hs191
-rw-r--r--ghc/lib/prelude/Prel13_mc.hi509
-rw-r--r--ghc/lib/prelude/Prel13_mg.hi509
-rw-r--r--ghc/lib/prelude/Prel13_mp.hi509
-rw-r--r--ghc/lib/prelude/Prel13_mr.hi509
-rw-r--r--ghc/lib/prelude/Prel13_mt.hi509
-rw-r--r--ghc/lib/prelude/Prel13_p.hi509
-rw-r--r--ghc/lib/prelude/Prel13_t.hi509
-rw-r--r--ghc/lib/prelude/PrelCore13.hi994
-rw-r--r--ghc/lib/prelude/PrelCore13.hs69
-rw-r--r--ghc/lib/prelude/PrelCore13_mc.hi994
-rw-r--r--ghc/lib/prelude/PrelCore13_mg.hi994
-rw-r--r--ghc/lib/prelude/PrelCore13_mp.hi990
-rw-r--r--ghc/lib/prelude/PrelCore13_mr.hi994
-rw-r--r--ghc/lib/prelude/PrelCore13_mt.hi994
-rw-r--r--ghc/lib/prelude/PrelCore13_p.hi994
-rw-r--r--ghc/lib/prelude/PrelCore13_t.hi994
-rw-r--r--ghc/lib/prelude/PrelCoreHi.hs57
-rw-r--r--ghc/lib/prelude/Prel_mc.hi87
-rw-r--r--ghc/lib/prelude/Prel_mg.hi87
-rw-r--r--ghc/lib/prelude/Prel_mp.hi87
-rw-r--r--ghc/lib/prelude/Prel_mr.hi87
-rw-r--r--ghc/lib/prelude/Prel_mt.hi87
-rw-r--r--ghc/lib/prelude/Prel_p.hi87
-rw-r--r--ghc/lib/prelude/Prel_t.hi87
-rw-r--r--ghc/lib/prelude/Prelude.hi463
-rw-r--r--ghc/lib/prelude/PreludeCore.hi971
-rw-r--r--ghc/lib/prelude/PreludeCore_mc.hi971
-rw-r--r--ghc/lib/prelude/PreludeCore_mg.hi971
-rw-r--r--ghc/lib/prelude/PreludeCore_mp.hi967
-rw-r--r--ghc/lib/prelude/PreludeCore_mr.hi971
-rw-r--r--ghc/lib/prelude/PreludeCore_mt.hi971
-rw-r--r--ghc/lib/prelude/PreludeCore_p.hi971
-rw-r--r--ghc/lib/prelude/PreludeCore_t.hi971
-rw-r--r--ghc/lib/prelude/PreludeHi.hs97
-rw-r--r--ghc/lib/prelude/PreludeIO.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO.lhs100
-rw-r--r--ghc/lib/prelude/PreludeIOError.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError.lhs107
-rw-r--r--ghc/lib/prelude/PreludeIOError_mc.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError_mg.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError_mp.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError_mr.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError_mt.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError_p.hi14
-rw-r--r--ghc/lib/prelude/PreludeIOError_t.hi14
-rw-r--r--ghc/lib/prelude/PreludeIO_mc.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO_mg.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO_mp.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO_mr.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO_mt.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO_p.hi137
-rw-r--r--ghc/lib/prelude/PreludeIO_t.hi137
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO.lhs204
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_mc.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_mg.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_mp.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_mr.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_mt.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_p.hi36
-rw-r--r--ghc/lib/prelude/PreludeMonadicIO_t.hi36
-rw-r--r--ghc/lib/prelude/PreludeNull_.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__1s.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__2s.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__du.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__i.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__j.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__k.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__l.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__m.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__mc.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__mg.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__mp.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__mr.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__mt.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__n.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__o.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__p.hi4
-rw-r--r--ghc/lib/prelude/PreludeNull__t.hi4
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO.lhs311
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_mc.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_mg.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_mp.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_mr.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_mt.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_p.hi21
-rw-r--r--ghc/lib/prelude/PreludeReadTextIO_t.hi21
-rw-r--r--ghc/lib/prelude/PreludeStdIO.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO.lhs918
-rw-r--r--ghc/lib/prelude/PreludeStdIO_mc.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO_mg.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO_mp.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO_mr.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO_mt.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO_p.hi72
-rw-r--r--ghc/lib/prelude/PreludeStdIO_t.hi72
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO.lhs190
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_mc.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_mg.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_mp.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_mr.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_mt.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_p.hi27
-rw-r--r--ghc/lib/prelude/PreludeWriteTextIO_t.hi27
-rw-r--r--ghc/lib/prelude/Prelude_mc.hi463
-rw-r--r--ghc/lib/prelude/Prelude_mg.hi463
-rw-r--r--ghc/lib/prelude/Prelude_mp.hi463
-rw-r--r--ghc/lib/prelude/Prelude_mr.hi463
-rw-r--r--ghc/lib/prelude/Prelude_mt.hi463
-rw-r--r--ghc/lib/prelude/Prelude_p.hi463
-rw-r--r--ghc/lib/prelude/Prelude_t.hi463
-rw-r--r--ghc/lib/prelude/SampleVar.hi15
-rw-r--r--ghc/lib/prelude/SampleVar.lhs95
-rw-r--r--ghc/lib/prelude/SampleVar_mc.hi15
-rw-r--r--ghc/lib/prelude/SampleVar_mg.hi15
-rw-r--r--ghc/lib/prelude/SampleVar_mp.hi15
-rw-r--r--ghc/lib/prelude/SampleVar_p.hi15
-rw-r--r--ghc/lib/prelude/SampleVar_t.hi15
-rw-r--r--ghc/lib/prelude/Semaphore.hi20
-rw-r--r--ghc/lib/prelude/Semaphore.lhs122
-rw-r--r--ghc/lib/prelude/Semaphore_mc.hi20
-rw-r--r--ghc/lib/prelude/Semaphore_mg.hi20
-rw-r--r--ghc/lib/prelude/Semaphore_mp.hi20
-rw-r--r--ghc/lib/prelude/Semaphore_p.hi20
-rw-r--r--ghc/lib/prelude/Semaphore_t.hi20
-rw-r--r--ghc/lib/prelude/Text.hi56
-rw-r--r--ghc/lib/prelude/Text.hs461
-rw-r--r--ghc/lib/prelude/Text_mc.hi56
-rw-r--r--ghc/lib/prelude/Text_mg.hi56
-rw-r--r--ghc/lib/prelude/Text_mp.hi56
-rw-r--r--ghc/lib/prelude/Text_mr.hi56
-rw-r--r--ghc/lib/prelude/Text_mt.hi56
-rw-r--r--ghc/lib/prelude/Text_p.hi56
-rw-r--r--ghc/lib/prelude/Text_t.hi56
-rw-r--r--ghc/lib/prelude/TyArray.hi10
-rw-r--r--ghc/lib/prelude/TyArray.hs27
-rw-r--r--ghc/lib/prelude/TyArray_mc.hi10
-rw-r--r--ghc/lib/prelude/TyArray_mg.hi10
-rw-r--r--ghc/lib/prelude/TyArray_mp.hi10
-rw-r--r--ghc/lib/prelude/TyArray_mr.hi10
-rw-r--r--ghc/lib/prelude/TyArray_mt.hi10
-rw-r--r--ghc/lib/prelude/TyArray_p.hi10
-rw-r--r--ghc/lib/prelude/TyArray_t.hi10
-rw-r--r--ghc/lib/prelude/TyBool.hs5
-rw-r--r--ghc/lib/prelude/TyComplex.hi4
-rw-r--r--ghc/lib/prelude/TyComplex.hs10
-rw-r--r--ghc/lib/prelude/TyComplex_mc.hi4
-rw-r--r--ghc/lib/prelude/TyComplex_mg.hi4
-rw-r--r--ghc/lib/prelude/TyComplex_mp.hi4
-rw-r--r--ghc/lib/prelude/TyComplex_mr.hi4
-rw-r--r--ghc/lib/prelude/TyComplex_mt.hi4
-rw-r--r--ghc/lib/prelude/TyComplex_p.hi4
-rw-r--r--ghc/lib/prelude/TyComplex_t.hi4
-rw-r--r--ghc/lib/prelude/TyIO.hi15
-rw-r--r--ghc/lib/prelude/TyIO.hs63
-rw-r--r--ghc/lib/prelude/TyIO_mc.hi15
-rw-r--r--ghc/lib/prelude/TyIO_mg.hi15
-rw-r--r--ghc/lib/prelude/TyIO_mp.hi15
-rw-r--r--ghc/lib/prelude/TyIO_mr.hi15
-rw-r--r--ghc/lib/prelude/TyIO_mt.hi15
-rw-r--r--ghc/lib/prelude/TyIO_p.hi15
-rw-r--r--ghc/lib/prelude/TyIO_t.hi15
-rw-r--r--ghc/lib/prelude/TyRatio.hs10
-rw-r--r--ghc/lib/prelude/TysBasic.hs204
-rw-r--r--ghc/lib/prelude/UTypes.hi9
-rw-r--r--ghc/lib/prelude/UTypes_1s.hi9
-rw-r--r--ghc/lib/prelude/UTypes_2s.hi9
-rw-r--r--ghc/lib/prelude/UTypes_du.hi9
-rw-r--r--ghc/lib/prelude/UTypes_i.hi9
-rw-r--r--ghc/lib/prelude/UTypes_j.hi9
-rw-r--r--ghc/lib/prelude/UTypes_k.hi9
-rw-r--r--ghc/lib/prelude/UTypes_l.hi9
-rw-r--r--ghc/lib/prelude/UTypes_m.hi9
-rw-r--r--ghc/lib/prelude/UTypes_mc.hi9
-rw-r--r--ghc/lib/prelude/UTypes_mg.hi9
-rw-r--r--ghc/lib/prelude/UTypes_mp.hi9
-rw-r--r--ghc/lib/prelude/UTypes_mr.hi9
-rw-r--r--ghc/lib/prelude/UTypes_mt.hi9
-rw-r--r--ghc/lib/prelude/UTypes_n.hi9
-rw-r--r--ghc/lib/prelude/UTypes_o.hi9
-rw-r--r--ghc/lib/prelude/UTypes_p.hi9
-rw-r--r--ghc/lib/prelude/UTypes_t.hi9
-rw-r--r--ghc/lib/tests/Jmakefile0
926 files changed, 90624 insertions, 0 deletions
diff --git a/ghc/lib/Jmakefile b/ghc/lib/Jmakefile
new file mode 100644
index 0000000000..1eb1578e7a
--- /dev/null
+++ b/ghc/lib/Jmakefile
@@ -0,0 +1,1159 @@
+/* This is the Jmakefile for the library stuff.
+ This stuff is all written in (Glasgow-extended) Haskell.
+
+Things are organised into exactly one level of subdirs.
+
+At the moment, there are a few such subdirs:
+
+ glaExts -- Glasgow I/O stuff
+ prelude -- std prelude stuff
+
+We create one library, libHS.a, with all this stuff in it; note, we
+make 94 diff flavors of this one library.... sigh
+
+(We also build several more "normal" libraries here:
+
+ hbc -- support various HBC library thingies
+ ghc -- extra GHC-supported libraries
+ contrib -- contributed things, incl off the net
+ haskell-1.3 -- Haskell 1.3 libraries
+ ...
+)
+
+You should probably read the "Prelude and what the compiler knows
+about it" document before wading in too deeply....
+
+For a particular dir/mFoo.hs src file, you'll see many
+dir/mFoo/mFoo__<number>.o object files.
+
+Everything here *must* be compiled w/ the Glasgow Haskell compiler.
+(Hence the use of $(GHC), rather than $(HC) [the latter is your "standard"
+Haskell compiler -- whatever you've configured]).
+
+If you use EXTRA_HC_OPTS on the command line (which you shouldn't,
+strictly speaking), it will probably work -- it is pinned onto
+GHC_OPTS, just for fun.
+
+*/
+
+/****************************************************************
+* *
+* Jmakefile preamble-y things *
+* *
+****************************************************************/
+
+
+#if IncludeTestDirsInBuild == YES
+#define IHaveSubdirs
+#define __ghc_lib_tests_dir tests
+#else
+#define __ghc_lib_tests_dir /* nothing */
+#endif
+
+SUBDIRS = __ghc_lib_tests_dir
+
+/* only subdir is the (empty :-() test suite */
+#define NoAllTargetForSubdirs
+#define NoDocsTargetForSubdirs
+#define NoInstallTargetForSubdirs
+#define NoInstallDocsTargetForSubdirs
+#define NoDependTargetForSubdirs
+#define NoTagTargetForSubdirs
+
+GhcDriverNeededHere(depend all)
+EtagsNeededHere(tags)
+
+/****************************************************************
+* *
+* options used for compiling/etc. things *
+* *
+****************************************************************/
+
+/* The driver will give warnings if -split-objs,
+ but that's cool...
+*/
+GHC_OPTS=-iprelude:glaExts -dcore-lint \
+ -fshow-pragma-name-errs -fshow-import-specs \
+ -optP-genSPECS0 -cpp -fglasgow-exts \
+ -DUSE_FOLDR_BUILD -D__OVERLAPPING_INSTANCES__ \
+ HcMaxHeapFlag $(EXTRA_HC_OPTS)
+
+/* For the "Prelude" bits: mostly we do not want it to pick
+ up interface information from anywhere except *here*.
+
+ -fomit-reexported-instances: we occasionally override
+ this (e.g., on PreludeHi.hs, to create Prelude.hi)
+*/
+PREL_OPTS=-prelude -fno-implicit-prelude -fomit-reexported-instances
+
+/* per-build options: shared with RTS */
+#define rts_or_lib(r,l) l
+#include "../mkworld/GHC_OPTS"
+
+/* this is just friendliness to "hstags" */
+HSTAGS_OPTS=-fglasgow-exts
+
+/****************************************************************
+* *
+* what it is we are compiling; *
+* these are long and tedious lists, but c'est la guerre *
+* *
+****************************************************************/
+
+/* the actual source bits */
+BASIC_LHS = \
+\
+glaExts/PreludeErrIO.lhs \
+glaExts/PreludePrimIO.lhs \
+glaExts/PreludeGlaST.lhs \
+glaExts/PreludeDialogueIO.lhs \
+glaExts/MainIO.lhs \
+glaExts/MainIO13.lhs \
+glaExts/Stdio.lhs \
+glaExts/ByteOps.lhs \
+\
+prelude/PreludeIO.lhs \
+prelude/PreludeIOError.lhs \
+prelude/PreludeMonadicIO.lhs \
+prelude/PreludeReadTextIO.lhs \
+prelude/PreludeStdIO.lhs \
+prelude/PreludeWriteTextIO.lhs \
+\
+prelude/PS.lhs \
+\
+prelude/Concurrent.lhs \
+prelude/ChannelVar.lhs \
+prelude/Channel.lhs \
+prelude/Semaphore.lhs \
+prelude/Merge.lhs \
+prelude/SampleVar.lhs \
+\
+prelude/Parallel.lhs \
+\
+glaExts/PreludeGlaMisc.lhs /* interface */
+
+BASIC_HS_PREL = \
+prelude/TysBasic.hs \
+prelude/TyArray.hs \
+prelude/TyBool.hs \
+prelude/TyComplex.hs \
+prelude/TyIO.hs \
+prelude/TyRatio.hs \
+\
+prelude/IArray.hs \
+prelude/IBool.hs \
+prelude/IChar.hs \
+prelude/IComplex.hs \
+prelude/IDouble.hs \
+prelude/IFloat.hs \
+prelude/IInt.hs \
+prelude/IInteger.hs \
+prelude/IList.hs \
+prelude/IRatio.hs \
+prelude/ITup0.hs \
+prelude/ITup2.hs \
+prelude/ITup3.hs \
+prelude/ITup4.hs \
+prelude/ITup5.hs \
+\
+prelude/Cls.hs \
+\
+prelude/Builtin.hs \
+prelude/Core.hs \
+prelude/IO.hs \
+prelude/List.hs \
+prelude/Prel.hs \
+prelude/Text.hs \
+prelude/FoldrBuild.hs \
+\
+prelude/PrelCoreHi.hs /* interface */ \
+prelude/PreludeHi.hs /* interface */ \
+\
+prelude/PrelCore13.hs /* interface */ \
+prelude/Prel13.hs /* interface */
+
+#if MakeDoesNestedMacros != YES
+
+/* make is brain-dead: use the file created below (w/ a good make) */
+#include "Jmake.inc1"
+
+#else /* good make */
+
+print_file_lists : print_file_list1 print_file_list2 print_file_list3 print_file_list4 print_file_list5
+
+#define SrcThingVars(blob) @@\
+CAT2(blob,_HC_norm) = $(CAT2(blob,_HS):.hs=.hc) @@\
+CAT2(blob,_HC_p) = $(CAT2(blob,_HS):.hs=_p.hc) @@\
+CAT2(blob,_HC_t) = $(CAT2(blob,_HS):.hs=_t.hc) @@\
+CAT2(blob,_HC_u) = $(CAT2(blob,_HS):.hs=_u.hc) @@\
+CAT2(blob,_HC_mc) = $(CAT2(blob,_HS):.hs=_mc.hc) @@\
+CAT2(blob,_HC_mr) = $(CAT2(blob,_HS):.hs=_mr.hc) @@\
+CAT2(blob,_HC_mt) = $(CAT2(blob,_HS):.hs=_mt.hc) @@\
+CAT2(blob,_HC_mp) = $(CAT2(blob,_HS):.hs=_mp.hc) @@\
+CAT2(blob,_HC_mg) = $(CAT2(blob,_HS):.hs=_mg.hc) @@\
+CAT2(blob,_HC_2s) = $(CAT2(blob,_HS):.hs=_2s.hc) @@\
+CAT2(blob,_HC_1s) = $(CAT2(blob,_HS):.hs=_1s.hc) @@\
+CAT2(blob,_HC_du) = $(CAT2(blob,_HS):.hs=_du.hc) @@\
+CAT2(blob,_HC_a) = $(CAT2(blob,_HS):.hs=_a.hc) @@\
+CAT2(blob,_HC_b) = $(CAT2(blob,_HS):.hs=_b.hc) @@\
+CAT2(blob,_HC_c) = $(CAT2(blob,_HS):.hs=_c.hc) @@\
+CAT2(blob,_HC_d) = $(CAT2(blob,_HS):.hs=_d.hc) @@\
+CAT2(blob,_HC_e) = $(CAT2(blob,_HS):.hs=_e.hc) @@\
+CAT2(blob,_HC_f) = $(CAT2(blob,_HS):.hs=_f.hc) @@\
+CAT2(blob,_HC_g) = $(CAT2(blob,_HS):.hs=_g.hc) @@\
+CAT2(blob,_HC_h) = $(CAT2(blob,_HS):.hs=_h.hc) @@\
+CAT2(blob,_HC_i) = $(CAT2(blob,_HS):.hs=_i.hc) @@\
+CAT2(blob,_HC_j) = $(CAT2(blob,_HS):.hs=_j.hc) @@\
+CAT2(blob,_HC_k) = $(CAT2(blob,_HS):.hs=_k.hc) @@\
+CAT2(blob,_HC_l) = $(CAT2(blob,_HS):.hs=_l.hc) @@\
+CAT2(blob,_HC_m) = $(CAT2(blob,_HS):.hs=_m.hc) @@\
+CAT2(blob,_HC_n) = $(CAT2(blob,_HS):.hs=_n.hc) @@\
+CAT2(blob,_HC_o) = $(CAT2(blob,_HS):.hs=_o.hc) @@\
+ @@\
+CAT2(blob,_DEP_norm) = $(CAT2(blob,_HC_norm):.hc=.o) @@\
+CAT2(blob,_DEP_p) = $(CAT2(blob,_HC_p):.hc=.o) @@\
+CAT2(blob,_DEP_t) = $(CAT2(blob,_HC_t):.hc=.o) @@\
+CAT2(blob,_DEP_u) = $(CAT2(blob,_HC_u):.hc=.o) @@\
+CAT2(blob,_DEP_mc) = $(CAT2(blob,_HC_mc):.hc=.o) @@\
+CAT2(blob,_DEP_mr) = $(CAT2(blob,_HC_mr):.hc=.o) @@\
+CAT2(blob,_DEP_mt) = $(CAT2(blob,_HC_mt):.hc=.o) @@\
+CAT2(blob,_DEP_mp) = $(CAT2(blob,_HC_mp):.hc=.o) @@\
+CAT2(blob,_DEP_mg) = $(CAT2(blob,_HC_mg):.hc=.o) @@\
+CAT2(blob,_DEP_2s) = $(CAT2(blob,_HC_2s):.hc=.o) @@\
+CAT2(blob,_DEP_1s) = $(CAT2(blob,_HC_1s):.hc=.o) @@\
+CAT2(blob,_DEP_du) = $(CAT2(blob,_HC_du):.hc=.o) @@\
+CAT2(blob,_DEP_a) = $(CAT2(blob,_HC_a):.hc=.o) @@\
+CAT2(blob,_DEP_b) = $(CAT2(blob,_HC_b):.hc=.o) @@\
+CAT2(blob,_DEP_c) = $(CAT2(blob,_HC_c):.hc=.o) @@\
+CAT2(blob,_DEP_d) = $(CAT2(blob,_HC_d):.hc=.o) @@\
+CAT2(blob,_DEP_e) = $(CAT2(blob,_HC_e):.hc=.o) @@\
+CAT2(blob,_DEP_f) = $(CAT2(blob,_HC_f):.hc=.o) @@\
+CAT2(blob,_DEP_g) = $(CAT2(blob,_HC_g):.hc=.o) @@\
+CAT2(blob,_DEP_h) = $(CAT2(blob,_HC_h):.hc=.o) @@\
+CAT2(blob,_DEP_i) = $(CAT2(blob,_HC_i):.hc=.o) @@\
+CAT2(blob,_DEP_j) = $(CAT2(blob,_HC_j):.hc=.o) @@\
+CAT2(blob,_DEP_k) = $(CAT2(blob,_HC_k):.hc=.o) @@\
+CAT2(blob,_DEP_l) = $(CAT2(blob,_HC_l):.hc=.o) @@\
+CAT2(blob,_DEP_m) = $(CAT2(blob,_HC_m):.hc=.o) @@\
+CAT2(blob,_DEP_n) = $(CAT2(blob,_HC_n):.hc=.o) @@\
+CAT2(blob,_DEP_o) = $(CAT2(blob,_HC_o):.hc=.o) @@\
+ @@\
+CAT2(blob,_HIs_p) = $(CAT2(blob,_HIs):.hi=_p.hi) @@\
+CAT2(blob,_HIs_t) = $(CAT2(blob,_HIs):.hi=_t.hi) @@\
+CAT2(blob,_HIs_u) = $(CAT2(blob,_HIs):.hi=_u.hi) @@\
+CAT2(blob,_HIs_mc) = $(CAT2(blob,_HIs):.hi=_mc.hi) @@\
+CAT2(blob,_HIs_mr) = $(CAT2(blob,_HIs):.hi=_mr.hi) @@\
+CAT2(blob,_HIs_mt) = $(CAT2(blob,_HIs):.hi=_mt.hi) @@\
+CAT2(blob,_HIs_mp) = $(CAT2(blob,_HIs):.hi=_mp.hi) @@\
+CAT2(blob,_HIs_mg) = $(CAT2(blob,_HIs):.hi=_mg.hi) @@\
+CAT2(blob,_HIs_2s) = $(CAT2(blob,_HIs):.hi=_2s.hi) @@\
+CAT2(blob,_HIs_1s) = $(CAT2(blob,_HIs):.hi=_1s.hi) @@\
+CAT2(blob,_HIs_du) = $(CAT2(blob,_HIs):.hi=_du.hi) @@\
+CAT2(blob,_HIs_a) = $(CAT2(blob,_HIs):.hi=_a.hi) @@\
+CAT2(blob,_HIs_b) = $(CAT2(blob,_HIs):.hi=_b.hi) @@\
+CAT2(blob,_HIs_c) = $(CAT2(blob,_HIs):.hi=_c.hi) @@\
+CAT2(blob,_HIs_d) = $(CAT2(blob,_HIs):.hi=_d.hi) @@\
+CAT2(blob,_HIs_e) = $(CAT2(blob,_HIs):.hi=_e.hi) @@\
+CAT2(blob,_HIs_f) = $(CAT2(blob,_HIs):.hi=_f.hi) @@\
+CAT2(blob,_HIs_g) = $(CAT2(blob,_HIs):.hi=_g.hi) @@\
+CAT2(blob,_HIs_h) = $(CAT2(blob,_HIs):.hi=_h.hi) @@\
+CAT2(blob,_HIs_i) = $(CAT2(blob,_HIs):.hi=_i.hi) @@\
+CAT2(blob,_HIs_j) = $(CAT2(blob,_HIs):.hi=_j.hi) @@\
+CAT2(blob,_HIs_k) = $(CAT2(blob,_HIs):.hi=_k.hi) @@\
+CAT2(blob,_HIs_l) = $(CAT2(blob,_HIs):.hi=_l.hi) @@\
+CAT2(blob,_HIs_m) = $(CAT2(blob,_HIs):.hi=_m.hi) @@\
+CAT2(blob,_HIs_n) = $(CAT2(blob,_HIs):.hi=_n.hi) @@\
+CAT2(blob,_HIs_o) = $(CAT2(blob,_HIs):.hi=_o.hi)
+
+
+#define PrintFileStuff(blob,outf) \
+ @echo 'IfGhcBuild_normal(' CAT2(blob,_HC_norm) = $(CAT2(blob,_HC_norm)) ')' >> outf @@\
+ @echo 'IfGhcBuild_normal(' CAT2(blob,_DEP_norm) = $(CAT2(blob,_DEP_norm)) ')' >> outf @@\
+ @echo 'IfGhcBuild_p(' CAT2(blob,_HC_p) = $(CAT2(blob,_HC_p)) ')' >> outf @@\
+ @echo 'IfGhcBuild_t(' CAT2(blob,_HC_t) = $(CAT2(blob,_HC_t)) ')' >> outf @@\
+ @echo 'IfGhcBuild_u(' CAT2(blob,_HC_u) = $(CAT2(blob,_HC_u)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mc(' CAT2(blob,_HC_mc) = $(CAT2(blob,_HC_mc)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mr(' CAT2(blob,_HC_mr) = $(CAT2(blob,_HC_mr)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mt(' CAT2(blob,_HC_mt) = $(CAT2(blob,_HC_mt)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mp(' CAT2(blob,_HC_mp) = $(CAT2(blob,_HC_mp)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mg(' CAT2(blob,_HC_mg) = $(CAT2(blob,_HC_mg)) ')' >> outf @@\
+ @echo 'IfGhcBuild_2s(' CAT2(blob,_HC_2s) = $(CAT2(blob,_HC_2s)) ')' >> outf @@\
+ @echo 'IfGhcBuild_1s(' CAT2(blob,_HC_1s) = $(CAT2(blob,_HC_1s)) ')' >> outf @@\
+ @echo 'IfGhcBuild_du(' CAT2(blob,_HC_du) = $(CAT2(blob,_HC_du)) ')' >> outf @@\
+ @echo 'IfGhcBuild_a(' CAT2(blob,_HC_a) = $(CAT2(blob,_HC_a)) ')' >> outf @@\
+ @echo 'IfGhcBuild_b(' CAT2(blob,_HC_b) = $(CAT2(blob,_HC_b)) ')' >> outf @@\
+ @echo 'IfGhcBuild_c(' CAT2(blob,_HC_c) = $(CAT2(blob,_HC_c)) ')' >> outf @@\
+ @echo 'IfGhcBuild_d(' CAT2(blob,_HC_d) = $(CAT2(blob,_HC_d)) ')' >> outf @@\
+ @echo 'IfGhcBuild_e(' CAT2(blob,_HC_e) = $(CAT2(blob,_HC_e)) ')' >> outf @@\
+ @echo 'IfGhcBuild_f(' CAT2(blob,_HC_f) = $(CAT2(blob,_HC_f)) ')' >> outf @@\
+ @echo 'IfGhcBuild_g(' CAT2(blob,_HC_g) = $(CAT2(blob,_HC_g)) ')' >> outf @@\
+ @echo 'IfGhcBuild_h(' CAT2(blob,_HC_h) = $(CAT2(blob,_HC_h)) ')' >> outf @@\
+ @echo 'IfGhcBuild_i(' CAT2(blob,_HC_i) = $(CAT2(blob,_HC_i)) ')' >> outf @@\
+ @echo 'IfGhcBuild_j(' CAT2(blob,_HC_j) = $(CAT2(blob,_HC_j)) ')' >> outf @@\
+ @echo 'IfGhcBuild_k(' CAT2(blob,_HC_k) = $(CAT2(blob,_HC_k)) ')' >> outf @@\
+ @echo 'IfGhcBuild_l(' CAT2(blob,_HC_l) = $(CAT2(blob,_HC_l)) ')' >> outf @@\
+ @echo 'IfGhcBuild_m(' CAT2(blob,_HC_m) = $(CAT2(blob,_HC_m)) ')' >> outf @@\
+ @echo 'IfGhcBuild_n(' CAT2(blob,_HC_n) = $(CAT2(blob,_HC_n)) ')' >> outf @@\
+ @echo 'IfGhcBuild_o(' CAT2(blob,_HC_o) = $(CAT2(blob,_HC_o)) ')' >> outf @@\
+ @echo 'IfGhcBuild_p(' CAT2(blob,_DEP_p) = $(CAT2(blob,_DEP_p)) ')' >> outf @@\
+ @echo 'IfGhcBuild_t(' CAT2(blob,_DEP_t) = $(CAT2(blob,_DEP_t)) ')' >> outf @@\
+ @echo 'IfGhcBuild_u(' CAT2(blob,_DEP_u) = $(CAT2(blob,_DEP_u)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mc(' CAT2(blob,_DEP_mc) = $(CAT2(blob,_DEP_mc)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mr(' CAT2(blob,_DEP_mr) = $(CAT2(blob,_DEP_mr)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mt(' CAT2(blob,_DEP_mt) = $(CAT2(blob,_DEP_mt)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mp(' CAT2(blob,_DEP_mp) = $(CAT2(blob,_DEP_mp)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mg(' CAT2(blob,_DEP_mg) = $(CAT2(blob,_DEP_mg)) ')' >> outf @@\
+ @echo 'IfGhcBuild_2s(' CAT2(blob,_DEP_2s) = $(CAT2(blob,_DEP_2s)) ')' >> outf @@\
+ @echo 'IfGhcBuild_1s(' CAT2(blob,_DEP_1s) = $(CAT2(blob,_DEP_1s)) ')' >> outf @@\
+ @echo 'IfGhcBuild_du(' CAT2(blob,_DEP_du) = $(CAT2(blob,_DEP_du)) ')' >> outf @@\
+ @echo 'IfGhcBuild_a(' CAT2(blob,_DEP_a) = $(CAT2(blob,_DEP_a)) ')' >> outf @@\
+ @echo 'IfGhcBuild_b(' CAT2(blob,_DEP_b) = $(CAT2(blob,_DEP_b)) ')' >> outf @@\
+ @echo 'IfGhcBuild_c(' CAT2(blob,_DEP_c) = $(CAT2(blob,_DEP_c)) ')' >> outf @@\
+ @echo 'IfGhcBuild_d(' CAT2(blob,_DEP_d) = $(CAT2(blob,_DEP_d)) ')' >> outf @@\
+ @echo 'IfGhcBuild_e(' CAT2(blob,_DEP_e) = $(CAT2(blob,_DEP_e)) ')' >> outf @@\
+ @echo 'IfGhcBuild_f(' CAT2(blob,_DEP_f) = $(CAT2(blob,_DEP_f)) ')' >> outf @@\
+ @echo 'IfGhcBuild_g(' CAT2(blob,_DEP_g) = $(CAT2(blob,_DEP_g)) ')' >> outf @@\
+ @echo 'IfGhcBuild_h(' CAT2(blob,_DEP_h) = $(CAT2(blob,_DEP_h)) ')' >> outf @@\
+ @echo 'IfGhcBuild_i(' CAT2(blob,_DEP_i) = $(CAT2(blob,_DEP_i)) ')' >> outf @@\
+ @echo 'IfGhcBuild_j(' CAT2(blob,_DEP_j) = $(CAT2(blob,_DEP_j)) ')' >> outf @@\
+ @echo 'IfGhcBuild_k(' CAT2(blob,_DEP_k) = $(CAT2(blob,_DEP_k)) ')' >> outf @@\
+ @echo 'IfGhcBuild_l(' CAT2(blob,_DEP_l) = $(CAT2(blob,_DEP_l)) ')' >> outf @@\
+ @echo 'IfGhcBuild_m(' CAT2(blob,_DEP_m) = $(CAT2(blob,_DEP_m)) ')' >> outf @@\
+ @echo 'IfGhcBuild_n(' CAT2(blob,_DEP_n) = $(CAT2(blob,_DEP_n)) ')' >> outf @@\
+ @echo 'IfGhcBuild_o(' CAT2(blob,_DEP_o) = $(CAT2(blob,_DEP_o)) ')' >> outf @@\
+ @echo 'IfGhcBuild_p(' CAT2(blob,_HIs_p) = $(CAT2(blob,_HIs_p)) ')' >> outf @@\
+ @echo 'IfGhcBuild_t(' CAT2(blob,_HIs_t) = $(CAT2(blob,_HIs_t)) ')' >> outf @@\
+ @echo 'IfGhcBuild_u(' CAT2(blob,_HIs_u) = $(CAT2(blob,_HIs_u)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mc(' CAT2(blob,_HIs_mc) = $(CAT2(blob,_HIs_mc)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mr(' CAT2(blob,_HIs_mr) = $(CAT2(blob,_HIs_mr)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mt(' CAT2(blob,_HIs_mt) = $(CAT2(blob,_HIs_mt)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mp(' CAT2(blob,_HIs_mp) = $(CAT2(blob,_HIs_mp)) ')' >> outf @@\
+ @echo 'IfGhcBuild_mg(' CAT2(blob,_HIs_mg) = $(CAT2(blob,_HIs_mg)) ')' >> outf @@\
+ @echo 'IfGhcBuild_2s(' CAT2(blob,_HIs_2s) = $(CAT2(blob,_HIs_2s)) ')' >> outf @@\
+ @echo 'IfGhcBuild_1s(' CAT2(blob,_HIs_1s) = $(CAT2(blob,_HIs_1s)) ')' >> outf @@\
+ @echo 'IfGhcBuild_du(' CAT2(blob,_HIs_du) = $(CAT2(blob,_HIs_du)) ')' >> outf @@\
+ @echo 'IfGhcBuild_a(' CAT2(blob,_HIs_a) = $(CAT2(blob,_HIs_a)) ')' >> outf @@\
+ @echo 'IfGhcBuild_b(' CAT2(blob,_HIs_b) = $(CAT2(blob,_HIs_b)) ')' >> outf @@\
+ @echo 'IfGhcBuild_c(' CAT2(blob,_HIs_c) = $(CAT2(blob,_HIs_c)) ')' >> outf @@\
+ @echo 'IfGhcBuild_d(' CAT2(blob,_HIs_d) = $(CAT2(blob,_HIs_d)) ')' >> outf @@\
+ @echo 'IfGhcBuild_e(' CAT2(blob,_HIs_e) = $(CAT2(blob,_HIs_e)) ')' >> outf @@\
+ @echo 'IfGhcBuild_f(' CAT2(blob,_HIs_f) = $(CAT2(blob,_HIs_f)) ')' >> outf @@\
+ @echo 'IfGhcBuild_g(' CAT2(blob,_HIs_g) = $(CAT2(blob,_HIs_g)) ')' >> outf @@\
+ @echo 'IfGhcBuild_h(' CAT2(blob,_HIs_h) = $(CAT2(blob,_HIs_h)) ')' >> outf @@\
+ @echo 'IfGhcBuild_i(' CAT2(blob,_HIs_i) = $(CAT2(blob,_HIs_i)) ')' >> outf @@\
+ @echo 'IfGhcBuild_j(' CAT2(blob,_HIs_j) = $(CAT2(blob,_HIs_j)) ')' >> outf @@\
+ @echo 'IfGhcBuild_k(' CAT2(blob,_HIs_k) = $(CAT2(blob,_HIs_k)) ')' >> outf @@\
+ @echo 'IfGhcBuild_l(' CAT2(blob,_HIs_l) = $(CAT2(blob,_HIs_l)) ')' >> outf @@\
+ @echo 'IfGhcBuild_m(' CAT2(blob,_HIs_m) = $(CAT2(blob,_HIs_m)) ')' >> outf @@\
+ @echo 'IfGhcBuild_n(' CAT2(blob,_HIs_n) = $(CAT2(blob,_HIs_n)) ')' >> outf @@\
+ @echo 'IfGhcBuild_o(' CAT2(blob,_HIs_o) = $(CAT2(blob,_HIs_o)) ')' >> outf
+
+BASIC_HS = $(BASIC_LHS:.lhs=.hs) $(BASIC_HS_PREL)
+BASIC_OBJS_DIRS = $(BASIC_HS:.hs=)
+
+SrcThingVars(BASIC)
+
+print_file_list1 :
+ $(RM) Jmake.inc1
+ @echo making Jmake.inc1 ...
+ @echo '/* Machine-generated file: do not edit! */' > Jmake.inc1
+ @echo BASIC_HS = $(BASIC_HS) >> Jmake.inc1
+ @echo BASIC_OBJS_DIRS = $(BASIC_OBJS_DIRS) >> Jmake.inc1
+ PrintFileStuff(BASIC,Jmake.inc1)
+
+#endif /* good make */
+
+/* ------------------------------------------*/
+/* same stuff, for Haskell 1.3 library */
+ONE3_LHS = \
+ haskell-1.3/LibSystem.lhs \
+ haskell-1.3/LibCPUTime.lhs \
+ haskell-1.3/LibDirectory.lhs \
+ haskell-1.3/LibTime.lhs \
+ haskell-1.3/LibPosix.lhs \
+ haskell-1.3/LibPosixDB.lhs \
+ haskell-1.3/LibPosixErr.lhs \
+ haskell-1.3/LibPosixFiles.lhs \
+ haskell-1.3/LibPosixIO.lhs \
+ haskell-1.3/LibPosixProcEnv.lhs \
+ haskell-1.3/LibPosixProcPrim.lhs \
+ haskell-1.3/LibPosixTTY.lhs \
+ haskell-1.3/LibPosixUtil.lhs
+
+#if MakeDoesNestedMacros != YES
+/* make is brain-dead: use file produced below (w/ a good make) */
+#include "Jmake.inc2"
+
+#else /* good make */
+
+ONE3_HS = $(ONE3_LHS:.lhs=.hs)
+ONE3_OBJS_DIRS = $(ONE3_HS:.hs=)
+
+SrcThingVars(ONE3)
+
+print_file_list2 :
+ $(RM) Jmake.inc2
+ @echo making Jmake.inc2 ...
+ @echo '/* Machine-generated file: do not edit! */' > Jmake.inc2
+ @echo ONE3_HS = $(ONE3_HS) >> Jmake.inc2
+ @echo ONE3_OBJS_DIRS = $(ONE3_OBJS_DIRS) >> Jmake.inc2
+ PrintFileStuff(ONE3,Jmake.inc2)
+
+#endif /* good make */
+
+/* ------------------------------------------*/
+/* same stuff, for GHC utilities library */
+
+#if GhcWithReadline != YES
+# define __readline_lhs /*none*/
+# define __readline_hi /*none*/
+#else
+# define __readline_lhs \
+ ghc/Readline.lhs
+# define __readline_hi \
+ ghc/Readline.hi
+#endif
+
+#if GhcWithSockets != YES
+# define __sockets_lhs /*none*/
+# define __sockets_hi /*none*/
+#else
+# define __sockets_lhs \
+ ghc/Socket.lhs \
+ ghc/SocketPrim.lhs \
+ ghc/BSD.lhs \
+ ghc/CError.lhs
+# define __sockets_hi \
+ ghc/Socket.hi \
+ ghc/SocketPrim.hi \
+ ghc/BSD.hi
+#endif
+
+GHCLIB_LHS = \
+ ghc/Bag.lhs \
+ ghc/BitSet.lhs \
+ ghc/CharSeq.lhs \
+ ghc/FiniteMap.lhs \
+ ghc/ListSetOps.lhs \
+ ghc/Maybes.lhs \
+ ghc/PackedString.lhs \
+ ghc/Regex.lhs \
+ ghc/MatchPS.lhs \
+ ghc/Pretty.lhs \
+ ghc/Set.lhs \
+ ghc/Util.lhs __readline_lhs __sockets_lhs
+
+#if MakeDoesNestedMacros != YES
+/* make is brain-dead: use the file produced below */
+#include "Jmake.inc3"
+
+#else /* good make */
+
+GHCLIB_HS = $(GHCLIB_LHS:.lhs=.hs)
+GHCLIB_OBJS_DIRS = $(GHCLIB_HS:.hs=)
+
+SrcThingVars(GHCLIB)
+
+print_file_list3 :
+ $(RM) Jmake.inc3
+ @echo making Jmake.inc3 ...
+ @echo '/* Machine-generated file: do not edit! */' > Jmake.inc3
+ @echo GHCLIB_HS = $(GHCLIB_HS) >> Jmake.inc3
+ @echo GHCLIB_OBJS_DIRS = $(GHCLIB_OBJS_DIRS) >> Jmake.inc3
+ PrintFileStuff(GHCLIB,Jmake.inc3)
+
+#endif /* good make */
+
+/* ------------------------------------------*/
+/* same stuff, for HBC-compatibility library */
+HBCLIB_HS = \
+ hbc/Algebra.hs \
+ hbc/Hash.hs \
+ hbc/ListUtil.hs \
+ hbc/Miranda.hs \
+ hbc/NameSupply.hs \
+ hbc/Number.hs \
+ hbc/Parse.hs \
+ hbc/Pretty.hs \
+ hbc/Printf.hs \
+ hbc/QSort.hs \
+ hbc/Random.hs \
+ hbc/SimpleLex.hs \
+ hbc/Time.hs \
+ hbc/Trace.hs \
+ hbc/Native.hs \
+ hbc/Word.hs
+
+#if MakeDoesNestedMacros != YES
+/* make is brain-dead: use file produced below (w/ a good make) */
+#include "Jmake.inc4"
+
+#else /* good make */
+
+HBCLIB_OBJS_DIRS = $(HBCLIB_HS:.hs=)
+
+SrcThingVars(HBCLIB)
+
+print_file_list4 :
+ $(RM) Jmake.inc4
+ @echo making Jmake.inc4 ...
+ @echo '/* Machine-generated file: do not edit! */' > Jmake.inc4
+ @echo HBCLIB_HS = $(HBCLIB_HS) >> Jmake.inc4
+ @echo HBCLIB_OBJS_DIRS = $(HBCLIB_OBJS_DIRS) >> Jmake.inc4
+ PrintFileStuff(HBCLIB,Jmake.inc4)
+
+#endif /* good make */
+
+#if MakeDoesNestedMacros == YES
+
+/* ---- occasionally convenient make targets ---- */
+IfGhcBuild_normal(hcs :: $(BASIC_HC_norm) $(ONE3_HC_norm) $(GHCLIB_HC_norm) $(HBCLIB_HC_norm))
+IfGhcBuild_p(hcs_p :: $(BASIC_HC_p) $(ONE3_HC_p) $(GHCLIB_HC_p) $(HBCLIB_HC_p))
+IfGhcBuild_t(hcs_t :: $(BASIC_HC_t) $(ONE3_HC_t) $(GHCLIB_HC_t) $(HBCLIB_HC_t))
+IfGhcBuild_u(hcs_u :: $(BASIC_HC_u) $(ONE3_HC_u) $(GHCLIB_HC_u) $(HBCLIB_HC_u))
+IfGhcBuild_mc(hcs_mc :: $(BASIC_HC_mc) $(ONE3_HC_mc) $(GHCLIB_HC_mc) $(HBCLIB_HC_mc))
+IfGhcBuild_mr(hcs_mr :: $(BASIC_HC_mr) $(ONE3_HC_mr) $(GHCLIB_HC_mr) $(HBCLIB_HC_mr))
+IfGhcBuild_mt(hcs_mt :: $(BASIC_HC_mt) $(ONE3_HC_mt) $(GHCLIB_HC_mt) $(HBCLIB_HC_mt))
+IfGhcBuild_mp(hcs_mp :: $(BASIC_HC_mp) $(ONE3_HC_mp) $(GHCLIB_HC_mp) $(HBCLIB_HC_mp))
+IfGhcBuild_mg(hcs_mg :: $(BASIC_HC_mg) $(ONE3_HC_mg) $(GHCLIB_HC_mg) $(HBCLIB_HC_mg))
+IfGhcBuild_2s(hcs_2s :: $(BASIC_HC_2s) $(ONE3_HC_2s) $(GHCLIB_HC_2s) $(HBCLIB_HC_2s))
+IfGhcBuild_1s(hcs_1s :: $(BASIC_HC_1s) $(ONE3_HC_1s) $(GHCLIB_HC_1s) $(HBCLIB_HC_1s))
+IfGhcBuild_du(hcs_du :: $(BASIC_HC_du) $(ONE3_HC_du) $(GHCLIB_HC_du) $(HBCLIB_HC_du))
+IfGhcBuild_a(hcs_a :: $(BASIC_HC_a) $(ONE3_HC_a) $(GHCLIB_HC_a) $(HBCLIB_HC_a))
+IfGhcBuild_b(hcs_b :: $(BASIC_HC_b) $(ONE3_HC_b) $(GHCLIB_HC_b) $(HBCLIB_HC_b))
+IfGhcBuild_c(hcs_c :: $(BASIC_HC_c) $(ONE3_HC_c) $(GHCLIB_HC_c) $(HBCLIB_HC_c))
+IfGhcBuild_d(hcs_d :: $(BASIC_HC_d) $(ONE3_HC_d) $(GHCLIB_HC_d) $(HBCLIB_HC_d))
+IfGhcBuild_e(hcs_e :: $(BASIC_HC_e) $(ONE3_HC_e) $(GHCLIB_HC_e) $(HBCLIB_HC_e))
+IfGhcBuild_f(hcs_f :: $(BASIC_HC_f) $(ONE3_HC_f) $(GHCLIB_HC_f) $(HBCLIB_HC_f))
+IfGhcBuild_g(hcs_g :: $(BASIC_HC_g) $(ONE3_HC_g) $(GHCLIB_HC_g) $(HBCLIB_HC_g))
+IfGhcBuild_h(hcs_h :: $(BASIC_HC_h) $(ONE3_HC_h) $(GHCLIB_HC_h) $(HBCLIB_HC_h))
+IfGhcBuild_i(hcs_i :: $(BASIC_HC_i) $(ONE3_HC_i) $(GHCLIB_HC_i) $(HBCLIB_HC_i))
+IfGhcBuild_j(hcs_j :: $(BASIC_HC_j) $(ONE3_HC_j) $(GHCLIB_HC_j) $(HBCLIB_HC_j))
+IfGhcBuild_k(hcs_k :: $(BASIC_HC_k) $(ONE3_HC_k) $(GHCLIB_HC_k) $(HBCLIB_HC_k))
+IfGhcBuild_l(hcs_l :: $(BASIC_HC_l) $(ONE3_HC_l) $(GHCLIB_HC_l) $(HBCLIB_HC_l))
+IfGhcBuild_m(hcs_m :: $(BASIC_HC_m) $(ONE3_HC_m) $(GHCLIB_HC_m) $(HBCLIB_HC_m))
+IfGhcBuild_n(hcs_n :: $(BASIC_HC_n) $(ONE3_HC_n) $(GHCLIB_HC_n) $(HBCLIB_HC_n))
+IfGhcBuild_o(hcs_o :: $(BASIC_HC_o) $(ONE3_HC_o) $(GHCLIB_HC_o) $(HBCLIB_HC_o))
+
+IfGhcBuild_normal(libs:: libHS.a libHS13.a libHSghc.a libHShbc.a)
+IfGhcBuild_p(libs_p :: libHS_p.a libHS13_p.a libHSghc_p.a libHShbc_p.a)
+IfGhcBuild_t(libs_t :: libHS_t.a libHS13_t.a libHSghc_t.a libHShbc_t.a)
+IfGhcBuild_t(libs_u :: libHS_u.a libHS13_u.a libHSghc_u.a libHShbc_u.a)
+IfGhcBuild_mc(libs_mc :: libHS_mc.a libHS13_mc.a libHSghc_mc.a libHShbc_mc.a)
+IfGhcBuild_mr(libs_mr :: libHS_mr.a libHS13_mr.a libHSghc_mr.a libHShbc_mr.a)
+IfGhcBuild_mt(libs_mt :: libHS_mt.a libHS13_mt.a libHSghc_mt.a libHShbc_mt.a)
+IfGhcBuild_mp(libs_mp :: libHS_mp.a libHS13_mp.a libHSghc_mp.a libHShbc_mp.a)
+IfGhcBuild_mg(libs_mg :: libHS_mg.a libHS13_mg.a libHSghc_mg.a libHShbc_mg.a)
+IfGhcBuild_2s(libs_2s :: libHS_2s.a libHS13_2s.a libHSghc_2s.a libHShbc_2s.a)
+IfGhcBuild_1s(libs_1s :: libHS_1s.a libHS13_1s.a libHSghc_1s.a libHShbc_1s.a)
+IfGhcBuild_du(libs_du :: libHS_du.a libHS13_du.a libHSghc_du.a libHShbc_du.a)
+IfGhcBuild_a(libs_a :: libHS_a.a libHS13_a.a libHSghc_a.a libHShbc_a.a)
+IfGhcBuild_b(libs_b :: libHS_b.a libHS13_b.a libHSghc_b.a libHShbc_b.a)
+IfGhcBuild_c(libs_c :: libHS_c.a libHS13_c.a libHSghc_c.a libHShbc_c.a)
+IfGhcBuild_d(libs_d :: libHS_d.a libHS13_d.a libHSghc_d.a libHShbc_d.a)
+IfGhcBuild_e(libs_e :: libHS_e.a libHS13_e.a libHSghc_e.a libHShbc_e.a)
+IfGhcBuild_f(libs_f :: libHS_f.a libHS13_f.a libHSghc_f.a libHShbc_f.a)
+IfGhcBuild_g(libs_g :: libHS_g.a libHS13_g.a libHSghc_g.a libHShbc_g.a)
+IfGhcBuild_h(libs_h :: libHS_h.a libHS13_h.a libHSghc_h.a libHShbc_h.a)
+IfGhcBuild_i(libs_i :: libHS_i.a libHS13_i.a libHSghc_i.a libHShbc_i.a)
+IfGhcBuild_j(libs_j :: libHS_j.a libHS13_j.a libHSghc_j.a libHShbc_j.a)
+IfGhcBuild_k(libs_k :: libHS_k.a libHS13_k.a libHSghc_k.a libHShbc_k.a)
+IfGhcBuild_l(libs_l :: libHS_l.a libHS13_l.a libHSghc_l.a libHShbc_l.a)
+IfGhcBuild_m(libs_m :: libHS_m.a libHS13_m.a libHSghc_m.a libHShbc_m.a)
+IfGhcBuild_n(libs_n :: libHS_n.a libHS13_n.a libHSghc_n.a libHShbc_n.a)
+IfGhcBuild_o(libs_o :: libHS_o.a libHS13_o.a libHSghc_o.a libHShbc_o.a)
+
+/* maybe for GNU make only? */
+.PHONY :: hcs hcs_p hcs_t hcs_mg hcs_mr hcs_mt hcs_mp hcs_mg hcs_a hcs_b hcs_c hcs_d hcs_e hcs_f hcs_g hcs_h hcs_i hcs_j hcs_k hcs_l hcs_m hcs_n hcs_o
+
+#endif /* reasonable make */
+
+GHCLIB_HIs = you-really-need-to-define-GHCLIB_HIs
+ /* use print_file_lists */
+
+/* lists of *.hi files, for installation; i.e., the user
+ will be able to say (e.g.,) "import PreludePrimIO" and it will work.
+ (but "import ITup5" will not)
+
+ PreludeNull_.hi is tickled by "hstags".
+*/
+BASIC_HIs = prelude/Prelude.hi \
+ prelude/PreludeCore.hi \
+ prelude/Prel13.hi \
+ prelude/PrelCore13.hi \
+ prelude/PreludeNull_.hi \
+ glaExts/PreludeGlaST.hi \
+ glaExts/PreludeGlaMisc.hi \
+ prelude/Concurrent.hi \
+ prelude/Parallel.hi
+
+GHCLIB_HIs = ghc/Bag.hi \
+ ghc/BitSet.hi \
+ ghc/CharSeq.hi \
+ ghc/FiniteMap.hi \
+ ghc/ListSetOps.hi \
+ ghc/Maybes.hi \
+ ghc/PackedString.hi \
+ ghc/Regex.hi \
+ ghc/MatchPS.hi \
+ ghc/Pretty.hi \
+ ghc/Set.hi \
+ ghc/Util.hi __readline_hi __sockets_hi
+
+ONE3_HIs = haskell-1.3/LibSystem.hi \
+ haskell-1.3/LibCPUTime.hi \
+ haskell-1.3/LibDirectory.hi \
+ haskell-1.3/LibTime.hi \
+ haskell-1.3/LibPosix.hi
+
+HBCLIB_HIs = hbc/Algebra.hi \
+ hbc/Hash.hi \
+ hbc/ListUtil.hi \
+ hbc/Miranda.hi \
+ hbc/Native.hi \
+ hbc/NameSupply.hi \
+ hbc/Number.hi \
+ hbc/Parse.hi \
+ hbc/Pretty.hi \
+ hbc/Printf.hi \
+ hbc/QSort.hi \
+ hbc/Random.hi \
+ hbc/SimpleLex.hi \
+ hbc/Time.hi \
+ hbc/Trace.hi \
+ hbc/Word.hi
+
+/************************************************************************
+* *
+* Macros for creating and installing libHS<x>.a (in its many flavors). *
+* *
+*************************************************************************/
+
+#ifndef SpecialGhcLibraryTarget
+#define SpecialGhcLibraryTarget(lib,tag,objs_DEP,objs_DIR,find_pat) @@\
+AllTarget(CAT3(lib,tag,.a)) @@\
+CAT3(lib,tag,.a):: objs_DEP @@\
+ $(RM) $@ @@\
+ $(AR) $@ @@\
+ TMPDIR=$(TMPDIR); export TMPDIR; \
+ find objs_DIR -name find_pat -print | xargs ar q $@ @@\
+ $(RANLIB) CAT3(lib,tag,.a) @@\
+clean :: @@\
+ $(RM) CAT3(lib,tag,.a)
+#endif /* SpecialGhcLibraryTarget */
+
+#ifndef SpecialGhcLibInstallTarget
+#if DoInstallGHCSystem == YES
+#define SpecialGhcLibInstallTarget(lib,tag) @@\
+install :: CAT3(lib,tag,.a) @@\
+ $(INSTALL) $(INSTLIBFLAGS) CAT3(lib,tag,.a) \
+ $(INSTLIBDIR_GHC)/CAT3(lib,tag,.a) @@\
+ $(RANLIB) $(INSTLIBDIR_GHC)/CAT3(lib,tag,.a)
+#else /* ! DoInstallGhc... */
+#define SpecialGhcLibInstallTarget(lib,tag) /*nothing*/
+#endif /* ! DoInstallGhc... */
+#endif /* SpecialGhcLibInstallTarget */
+
+/* build/install all the diff libs for a particular build */
+
+#define BigHisTarget(targeti,basei,ghci,hbci,one3i) @@\
+targeti :: @@\
+InstallTarget(targeti) @@\
+InstallMultNonExecTargets(targeti,basei,$(INSTDATADIR_GHC)/imports) @@\
+InstallMultNonExecTargets(targeti,ghci, $(INSTDATADIR_GHC)/imports/ghc) @@\
+InstallMultNonExecTargets(targeti,hbci, $(INSTDATADIR_GHC)/imports/hbc) @@\
+InstallMultNonExecTargets(targeti,one3i,$(INSTDATADIR_GHC)/imports/haskell-1.3)
+
+#define BigLibsTarget(tag,glob,base,ghc,hbc,one3) @@\
+SpecialGhcLibraryTarget(libHS,tag,base,$(BASIC_OBJS_DIRS),glob) @@\
+SpecialGhcLibInstallTarget(libHS,tag) @@\
+SpecialGhcLibraryTarget(libHSghc,tag,ghc,$(GHCLIB_OBJS_DIRS),glob) @@\
+SpecialGhcLibInstallTarget(libHSghc,tag) @@\
+SpecialGhcLibraryTarget(libHShbc,tag,hbc,$(HBCLIB_OBJS_DIRS),glob) @@\
+SpecialGhcLibInstallTarget(libHShbc,tag) @@\
+SpecialGhcLibraryTarget(libHS13,tag,one3,$(ONE3_OBJS_DIRS),glob) @@\
+SpecialGhcLibInstallTarget(libHS13,tag)
+
+/* build *everything* -- monster macro from hell */
+#define BigBuildTarget(tag,glob,targeti,base,basei,ghc,ghci,hbc,hbci,one3,one3i) \
+BigLibsTarget(tag,glob,base,ghc,hbc,one3) @@\
+BigHisTarget(targeti,basei,ghci,hbci,one3i)
+
+
+/****************************************************************
+* *
+* Creating and installing... *
+* libHS_<tag>.a standard Prelude library *
+* libHShbc_<tag>.a HBC-compatibility lib *
+* libHSghc_<tag>.a GHC utilities lib *
+* libHS13_<tag>.a Haskell 1.3 lib *
+* *
+****************************************************************/
+
+/* make sure install's target dir is there */
+#if DoInstallGHCSystem == YES
+MakeDirectories(install, $(INSTLIBDIR_GHC) \
+ $(INSTDATADIR_GHC)/imports \
+ $(INSTDATADIR_GHC)/imports/ghc \
+ $(INSTDATADIR_GHC)/imports/hbc \
+ $(INSTDATADIR_GHC)/imports/haskell-1.3)
+
+basic_his :: /* nothing */
+InstallTarget(basic_his)
+InstallMultNonExecTargets(basic_his, $(BASIC_HIs), $(INSTDATADIR_GHC)/imports)
+InstallMultNonExecTargets(basic_his, $(HBCLIB_HIs), $(INSTDATADIR_GHC)/imports/hbc)
+InstallMultNonExecTargets(basic_his, $(ONE3_HIs), $(INSTDATADIR_GHC)/imports/haskell-1.3)
+InstallMultNonExecTargets(basic_his, $(GHCLIB_HIs), $(INSTDATADIR_GHC)/imports/ghc)
+#endif /* installing */
+
+IfGhcBuild_normal(BigBuildTarget(,'*_.o',basic_his \
+, $(BASIC_DEP_norm), $(BASIC_HIs) \
+, $(GHCLIB_DEP_norm), $(GHCLIB_HIs) \
+, $(HBCLIB_DEP_norm), $(HBCLIB_HIs) \
+, $(ONE3_DEP_norm), $(ONE3_HIs) \
+))
+
+IfGhcBuild_p(BigBuildTarget(_p,'*_p.o',his_p \
+, $(BASIC_DEP_p), $(BASIC_HIs_p) \
+, $(GHCLIB_DEP_p), $(GHCLIB_HIs_p) \
+, $(HBCLIB_DEP_p), $(HBCLIB_HIs_p) \
+, $(ONE3_DEP_p), $(ONE3_HIs_p) \
+))
+
+IfGhcBuild_t(BigBuildTarget(_t,'*_t.o',his_t \
+, $(BASIC_DEP_t), $(BASIC_HIs_t) \
+, $(GHCLIB_DEP_t), $(GHCLIB_HIs_t) \
+, $(HBCLIB_DEP_t), $(HBCLIB_HIs_t) \
+, $(ONE3_DEP_t), $(ONE3_HIs_t) \
+))
+
+IfGhcBuild_u(BigBuildTarget(,'*_u.o',his_u \
+, $(BASIC_DEP_u), $(BASIC_HIs_u) \
+, $(GHCLIB_DEP_u), $(GHCLIB_HIs_u) \
+, $(HBCLIB_DEP_u), $(HBCLIB_HIs_u) \
+, $(ONE3_DEP_u), $(ONE3_HIs_u) \
+))
+
+IfGhcBuild_mc(BigBuildTarget(_mc,'*_mc.o',his_mc \
+, $(BASIC_DEP_mc), $(BASIC_HIs_mc) \
+, $(GHCLIB_DEP_mc), $(GHCLIB_HIs_mc) \
+, $(HBCLIB_DEP_mc), $(HBCLIB_HIs_mc) \
+, $(ONE3_DEP_mc), $(ONE3_HIs_mc) \
+))
+
+IfGhcBuild_mr(BigBuildTarget(_mr,'*_mr.o',his_mr \
+, $(BASIC_DEP_mr), $(BASIC_HIs_mr) \
+, $(GHCLIB_DEP_mr), $(GHCLIB_HIs_mr) \
+, $(HBCLIB_DEP_mr), $(HBCLIB_HIs_mr) \
+, $(ONE3_DEP_mr), $(ONE3_HIs_mr) \
+))
+
+IfGhcBuild_mt(BigBuildTarget(_mr,'*_mt.o',his_mt \
+, $(BASIC_DEP_mt), $(BASIC_HIs_mt) \
+, $(GHCLIB_DEP_mt), $(GHCLIB_HIs_mt) \
+, $(HBCLIB_DEP_mt), $(HBCLIB_HIs_mt) \
+, $(ONE3_DEP_mt), $(ONE3_HIs_mt) \
+))
+
+IfGhcBuild_mp(BigBuildTarget(_mp,'*_mp.o',his_mp \
+, $(BASIC_DEP_mp), $(BASIC_HIs_mp) \
+, $(GHCLIB_DEP_mp), $(GHCLIB_HIs_mp) \
+, $(HBCLIB_DEP_mp), $(HBCLIB_HIs_mp) \
+, $(ONE3_DEP_mp), $(ONE3_HIs_mp) \
+))
+
+IfGhcBuild_mg(BigBuildTarget(_mg,'*_mg.o',his_mg \
+, $(BASIC_DEP_mg), $(BASIC_HIs_mg) \
+, $(GHCLIB_DEP_mg), $(GHCLIB_HIs_mg) \
+, $(HBCLIB_DEP_mg), $(HBCLIB_HIs_mg) \
+, $(ONE3_DEP_mg), $(ONE3_HIs_mg) \
+))
+
+/* these GC ones do not *really* need separate .hi files,
+ but it really makes life easier to do it this way
+*/
+IfGhcBuild_2s(BigBuildTarget(_2s,'*_2s.o',his_2s \
+, $(BASIC_DEP_2s), $(BASIC_HIs_2s) \
+, $(GHCLIB_DEP_2s), $(GHCLIB_HIs_2s) \
+, $(HBCLIB_DEP_2s), $(HBCLIB_HIs_2s) \
+, $(ONE3_DEP_2s), $(ONE3_HIs_2s) \
+))
+
+IfGhcBuild_1s(BigBuildTarget(_1s,'*_1s.o',his_1s \
+, $(BASIC_DEP_1s), $(BASIC_HIs_1s) \
+, $(GHCLIB_DEP_1s), $(GHCLIB_HIs_1s) \
+, $(HBCLIB_DEP_1s), $(HBCLIB_HIs_1s) \
+, $(ONE3_DEP_1s), $(ONE3_HIs_1s) \
+))
+
+IfGhcBuild_du(BigBuildTarget(_du,'*_du.o',his_du \
+, $(BASIC_DEP_du), $(BASIC_HIs_du) \
+, $(GHCLIB_DEP_du), $(GHCLIB_HIs_du) \
+, $(HBCLIB_DEP_du), $(HBCLIB_HIs_du) \
+, $(ONE3_DEP_du), $(ONE3_HIs_du) \
+))
+
+/* user ways -- yeeps! */
+
+IfGhcBuild_a(BigBuildTarget(_a,'*_a.o',his_a \
+, $(BASIC_DEP_a), $(BASIC_HIs_a) \
+, $(GHCLIB_DEP_a), $(GHCLIB_HIs_a) \
+, $(HBCLIB_DEP_a), $(HBCLIB_HIs_a) \
+, $(ONE3_DEP_a), $(ONE3_HIs_a) \
+))
+
+IfGhcBuild_b(BigBuildTarget(_b,'*_b.o',his_b \
+, $(BASIC_DEP_b), $(BASIC_HIs_b) \
+, $(GHCLIB_DEP_b), $(GHCLIB_HIs_b) \
+, $(HBCLIB_DEP_b), $(HBCLIB_HIs_b) \
+, $(ONE3_DEP_b), $(ONE3_HIs_b) \
+))
+
+IfGhcBuild_c(BigBuildTarget(_c,'*_c.o',his_c \
+, $(BASIC_DEP_c), $(BASIC_HIs_c) \
+, $(GHCLIB_DEP_c), $(GHCLIB_HIs_c) \
+, $(HBCLIB_DEP_c), $(HBCLIB_HIs_c) \
+, $(ONE3_DEP_c), $(ONE3_HIs_c) \
+))
+
+IfGhcBuild_d(BigBuildTarget(_d,'*_d.o',his_d \
+, $(BASIC_DEP_d), $(BASIC_HIs_d) \
+, $(GHCLIB_DEP_d), $(GHCLIB_HIs_d) \
+, $(HBCLIB_DEP_d), $(HBCLIB_HIs_d) \
+, $(ONE3_DEP_d), $(ONE3_HIs_d) \
+))
+
+IfGhcBuild_e(BigBuildTarget(_e,'*_e.o',his_e \
+, $(BASIC_DEP_e), $(BASIC_HIs_e) \
+, $(GHCLIB_DEP_e), $(GHCLIB_HIs_e) \
+, $(HBCLIB_DEP_e), $(HBCLIB_HIs_e) \
+, $(ONE3_DEP_e), $(ONE3_HIs_e) \
+))
+
+IfGhcBuild_f(BigBuildTarget(_f,'*_f.o',his_f \
+, $(BASIC_DEP_f), $(BASIC_HIs_f) \
+, $(GHCLIB_DEP_f), $(GHCLIB_HIs_f) \
+, $(HBCLIB_DEP_f), $(HBCLIB_HIs_f) \
+, $(ONE3_DEP_f), $(ONE3_HIs_f) \
+))
+
+IfGhcBuild_g(BigBuildTarget(_g,'*_g.o',his_g \
+, $(BASIC_DEP_g), $(BASIC_HIs_g) \
+, $(GHCLIB_DEP_g), $(GHCLIB_HIs_g) \
+, $(HBCLIB_DEP_g), $(HBCLIB_HIs_g) \
+, $(ONE3_DEP_g), $(ONE3_HIs_g) \
+))
+
+IfGhcBuild_h(BigBuildTarget(_h,'*_h.o',his_h \
+, $(BASIC_DEP_h), $(BASIC_HIs_h) \
+, $(GHCLIB_DEP_h), $(GHCLIB_HIs_h) \
+, $(HBCLIB_DEP_h), $(HBCLIB_HIs_h) \
+, $(ONE3_DEP_h), $(ONE3_HIs_h) \
+))
+
+IfGhcBuild_i(BigBuildTarget(_i,'*_i.o',his_i \
+, $(BASIC_DEP_i), $(BASIC_HIs_i) \
+, $(GHCLIB_DEP_i), $(GHCLIB_HIs_i) \
+, $(HBCLIB_DEP_i), $(HBCLIB_HIs_i) \
+, $(ONE3_DEP_i), $(ONE3_HIs_i) \
+))
+
+IfGhcBuild_j(BigBuildTarget(_j,'*_j.o',his_j \
+, $(BASIC_DEP_j), $(BASIC_HIs_j) \
+, $(GHCLIB_DEP_j), $(GHCLIB_HIs_j) \
+, $(HBCLIB_DEP_j), $(HBCLIB_HIs_j) \
+, $(ONE3_DEP_j), $(ONE3_HIs_j) \
+))
+
+IfGhcBuild_k(BigBuildTarget(_k,'*_k.o',his_k \
+, $(BASIC_DEP_k), $(BASIC_HIs_k) \
+, $(GHCLIB_DEP_k), $(GHCLIB_HIs_k) \
+, $(HBCLIB_DEP_k), $(HBCLIB_HIs_k) \
+, $(ONE3_DEP_k), $(ONE3_HIs_k) \
+))
+
+IfGhcBuild_l(BigBuildTarget(_l,'*_l.o',his_l \
+, $(BASIC_DEP_l), $(BASIC_HIs_l) \
+, $(GHCLIB_DEP_l), $(GHCLIB_HIs_l) \
+, $(HBCLIB_DEP_l), $(HBCLIB_HIs_l) \
+, $(ONE3_DEP_l), $(ONE3_HIs_l) \
+))
+
+IfGhcBuild_m(BigBuildTarget(_m,'*_m.o',his_m \
+, $(BASIC_DEP_m), $(BASIC_HIs_m) \
+, $(GHCLIB_DEP_m), $(GHCLIB_HIs_m) \
+, $(HBCLIB_DEP_m), $(HBCLIB_HIs_m) \
+, $(ONE3_DEP_m), $(ONE3_HIs_m) \
+))
+
+IfGhcBuild_n(BigBuildTarget(_n,'*_n.o',his_n \
+, $(BASIC_DEP_n), $(BASIC_HIs_n) \
+, $(GHCLIB_DEP_n), $(GHCLIB_HIs_n) \
+, $(HBCLIB_DEP_n), $(HBCLIB_HIs_n) \
+, $(ONE3_DEP_n), $(ONE3_HIs_n) \
+))
+
+IfGhcBuild_o(BigBuildTarget(_o,'*_o.o',his_o \
+, $(BASIC_DEP_o), $(BASIC_HIs_o) \
+, $(GHCLIB_DEP_o), $(GHCLIB_HIs_o) \
+, $(HBCLIB_DEP_o), $(HBCLIB_HIs_o) \
+, $(ONE3_DEP_o), $(ONE3_HIs_o) \
+))
+
+/****************************************************************
+* *
+* Creating the individual .hc files: *
+* *
+* For the just-vary-the-GC-thanks flavors, we only need to *
+* compile .hs->.hc once; then re-use the .hc file each time. *
+* *
+* For the profiling one (_p) and all the user-specified *
+* ones, we recompile the Haskell each time. *
+* *
+* NB: old (WDP 95/06) *
+****************************************************************/
+
+/* some "helpful" internal macros first... */
+
+#if GhcWithHscBuiltViaC == YES && HaskellCompilerType == HC_USE_HC_FILES
+#define CompilePreludishly__(file,isuf,way,flags) @@\
+clean :: @@\
+ $(RM) CAT3(file,way,.hc)
+
+#else /* normal case */
+#define CompilePreludishly__(file,isuf,way,flags) @@\
+CAT3(file,way,.hc) : file.isuf @@\
+ $(RM) CAT3(file,way,.hc) @@\
+ $(GHC) -C $(GHCFLAGS) flags file.isuf -o CAT3(file,way,.hc) @@\
+clean :: @@\
+ $(RM) CAT3(file,way,.hc)
+#endif
+
+#define ObjectifyPreludishly__(file,way,flags,osuff,find_pat) @@\
+CAT3(file,way,.o) : CAT3(file,way,.hc) @@\
+ $(RM) CAT3(file,way,.o) @@\
+ @if [ ! -d file ] ; then mkdir file ; else exit 0 ; fi @@\
+ @find file -name find_pat -print | xargs $(RM) __rm_food @@\
+ $(GHC) -c $(GHCFLAGS) flags CAT3(file,way,.hc) -odir file -osuf osuff @@\
+ touch CAT3(file,way,.o) @@\
+clean :: @@\
+ $(RM) CAT3(file,way,.o) @@\
+ find file -name find_pat -print | xargs $(RM) __rm_food
+
+#define DoHs(file,isuf,way,flags,osuf,find_pat) \
+CompilePreludishly__(file,isuf,way,flags) @@\
+ObjectifyPreludishly__(file,way,flags,osuf,find_pat)
+
+/* here we go: (NB: do not make .hc files for _u [unregisterized]) */
+
+#define CompilePreludishly(file,isuf,flags) @@\
+IfGhcBuild_normal(DoHs(file,isuf,,flags $(GHC_OPTS_norm),'_.o', '*_.o')) \
+IfGhcBuild_p(DoHs(file,isuf,_p, flags $(GHC_OPTS_p), '_p.o', '*_p.o')) \
+IfGhcBuild_t(DoHs(file,isuf,_t, flags $(GHC_OPTS_t), '_t.o', '*_t.o')) \
+IfGhcBuild_mc(DoHs(file,isuf,_mc, flags $(GHC_OPTS_mc), '_mc.o', '*_mc.o')) \
+IfGhcBuild_mr(DoHs(file,isuf,_mr, flags $(GHC_OPTS_mr), '_mr.o', '*_mr.o')) \
+IfGhcBuild_mt(DoHs(file,isuf,_mt, flags $(GHC_OPTS_mt), '_mt.o', '*_mt.o')) \
+IfGhcBuild_mp(DoHs(file,isuf,_mp, flags $(GHC_OPTS_mp), '_mp.o', '*_mp.o')) \
+IfGhcBuild_mg(DoHs(file,isuf,_mg, flags $(GHC_OPTS_mg), '_mg.o', '*_mg.o')) \
+IfGhcBuild_2s(DoHs(file,isuf,_2s, flags $(GHC_OPTS_2s), '_2s.o', '*_2s.o')) \
+IfGhcBuild_1s(DoHs(file,isuf,_1s, flags $(GHC_OPTS_1s), '_1s.o', '*_1s.o')) \
+IfGhcBuild_du(DoHs(file,isuf,_du, flags $(GHC_OPTS_du), '_du.o', '*_du.o')) \
+IfGhcBuild_a(DoHs(file,isuf,_a, flags $(GHC_OPTS_a), '_a.o', '*_a.o')) \
+IfGhcBuild_b(DoHs(file,isuf,_b, flags $(GHC_OPTS_b), '_b.o', '*_b.o')) \
+IfGhcBuild_c(DoHs(file,isuf,_c, flags $(GHC_OPTS_c), '_c.o', '*_c.o')) \
+IfGhcBuild_d(DoHs(file,isuf,_d, flags $(GHC_OPTS_d), '_d.o', '*_d.o')) \
+IfGhcBuild_e(DoHs(file,isuf,_e, flags $(GHC_OPTS_e), '_e.o', '*_e.o')) \
+IfGhcBuild_f(DoHs(file,isuf,_f, flags $(GHC_OPTS_f), '_f.o', '*_f.o')) \
+IfGhcBuild_g(DoHs(file,isuf,_g, flags $(GHC_OPTS_g), '_g.o', '*_g.o')) \
+IfGhcBuild_h(DoHs(file,isuf,_h, flags $(GHC_OPTS_h), '_h.o', '*_h.o')) \
+IfGhcBuild_i(DoHs(file,isuf,_i, flags $(GHC_OPTS_i), '_i.o', '*_i.o')) \
+IfGhcBuild_j(DoHs(file,isuf,_j, flags $(GHC_OPTS_j), '_j.o', '*_j.o')) \
+IfGhcBuild_k(DoHs(file,isuf,_k, flags $(GHC_OPTS_k), '_k.o', '*_k.o')) \
+IfGhcBuild_l(DoHs(file,isuf,_l, flags $(GHC_OPTS_l), '_l.o', '*_l.o')) \
+IfGhcBuild_m(DoHs(file,isuf,_m, flags $(GHC_OPTS_m), '_m.o', '*_m.o')) \
+IfGhcBuild_n(DoHs(file,isuf,_n, flags $(GHC_OPTS_n), '_n.o', '*_n.o')) \
+IfGhcBuild_o(DoHs(file,isuf,_o, flags $(GHC_OPTS_o), '_o.o', '*_o.o'))
+
+/* now use the macro: */
+
+CompilePreludishly(glaExts/PreludeGlaST,lhs, $(PREL_OPTS) -split-objs ST -H16m -monly-4-regs -fno-omit-reexported-instances)
+CompilePreludishly(glaExts/PreludePrimIO,lhs, $(PREL_OPTS) -split-objs PreludePrimIO)
+CompilePreludishly(glaExts/PreludeErrIO,lhs, $(PREL_OPTS) -split-objs ErrIO)
+CompilePreludishly(glaExts/PreludeDialogueIO,lhs,$(PREL_OPTS) -split-objs DialogueIO)
+CompilePreludishly(glaExts/MainIO,lhs, $(PREL_OPTS) -split-objs MainIO)
+CompilePreludishly(glaExts/MainIO13,lhs, $(PREL_OPTS) -split-objs MainIO13 -ohi glaExts/MainIO13.hi)
+CompilePreludishly(glaExts/Stdio,lhs, $(PREL_OPTS) -split-objs Stdio)
+CompilePreludishly(glaExts/ByteOps,lhs, $(PREL_OPTS) -split-objs ByteOps)
+
+CompilePreludishly(prelude/Concurrent,lhs, -fhaskell-1.3 -split-objs Concurrent -ohi prelude/Concurrent.hi)
+CompilePreludishly(prelude/ChannelVar,lhs, -fhaskell-1.3 -split-objs ChannelVar -ohi prelude/ChannelVar.hi)
+/* NB: do not split objs for Channel, because of purely-local things */
+CompilePreludishly(prelude/Channel,lhs, -fhaskell-1.3 -ohi prelude/Channel.hi)
+CompilePreludishly(prelude/Semaphore,lhs, -fhaskell-1.3 -split-objs Semaphore -ohi prelude/Semaphore.hi)
+CompilePreludishly(prelude/Merge,lhs, -fhaskell-1.3 -split-objs Merge -ohi prelude/Merge.hi)
+CompilePreludishly(prelude/SampleVar,lhs, -fhaskell-1.3 -split-objs SampleVar -ohi prelude/SampleVar.hi)
+
+CompilePreludishly(prelude/Parallel,lhs, -split-objs Parallel -ohi prelude/Parallel.hi)
+
+CompilePreludishly(prelude/TysBasic,hs, $(PREL_OPTS) -split-objs TysBasic -fmin-builtin-names -nohi)
+CompilePreludishly(prelude/TyBool,hs, $(PREL_OPTS) -split-objs TyBool -fhide-builtin-names -nohi)
+CompilePreludishly(prelude/TyArray,hs, $(PREL_OPTS) -split-objs TyArray -ohi prelude/TyArray.hi)
+CompilePreludishly(prelude/TyComplex,hs,$(PREL_OPTS) -split-objs TyComplex -ohi prelude/TyComplex.hi)
+CompilePreludishly(prelude/TyIO,hs, $(PREL_OPTS) -split-objs TyIO -fmin-builtin-names -ohi prelude/TyIO.hi)
+CompilePreludishly(prelude/TyRatio,hs, $(PREL_OPTS) -split-objs TyRatio -fmin-builtin-names -nohi)
+
+CompilePreludishly(prelude/IArray,hs, $(PREL_OPTS) -split-objs IArray -H14m -ohi prelude/IArray.hi)
+CompilePreludishly(prelude/IBool,hs, $(PREL_OPTS) -split-objs IBool -ohi prelude/IBool.hi)
+CompilePreludishly(prelude/IChar,hs, $(PREL_OPTS) -split-objs IChar -ohi prelude/IChar.hi)
+CompilePreludishly(prelude/IComplex,hs, $(PREL_OPTS) -split-objs IComplex -H16m -ohi prelude/IComplex.hi)
+CompilePreludishly(prelude/IDouble,hs, $(PREL_OPTS) -split-objs IDouble -ohi prelude/IDouble.hi)
+CompilePreludishly(prelude/IFloat,hs, $(PREL_OPTS) -split-objs IFloat -ohi prelude/IFloat.hi)
+CompilePreludishly(prelude/IInt,hs, $(PREL_OPTS) -split-objs IInt -ohi prelude/IInt.hi -monly-4-regs)
+CompilePreludishly(prelude/IInteger,hs, $(PREL_OPTS) -split-objs IInteger -ohi prelude/IInteger.hi)
+CompilePreludishly(prelude/IList,hs, $(PREL_OPTS) -split-objs IList -ohi prelude/IList.hi)
+CompilePreludishly(prelude/IRatio,hs, $(PREL_OPTS) -split-objs IRatio -H16m -ohi prelude/IRatio.hi)
+CompilePreludishly(prelude/ITup0,hs, $(PREL_OPTS) -split-objs ITup0 -ohi prelude/ITup0.hi)
+CompilePreludishly(prelude/ITup2,hs, $(PREL_OPTS) -split-objs ITup2 -ohi prelude/ITup2.hi)
+CompilePreludishly(prelude/ITup3,hs, $(PREL_OPTS) -split-objs ITup3 -ohi prelude/ITup3.hi)
+CompilePreludishly(prelude/ITup4,hs, $(PREL_OPTS) -split-objs ITup4 -H16m -ohi prelude/ITup4.hi)
+CompilePreludishly(prelude/ITup5,hs, $(PREL_OPTS) -split-objs ITup5 -H24m -ohi prelude/ITup5.hi)
+
+CompilePreludishly(prelude/Cls,hs, $(PREL_OPTS) -split-objs Cls -H24m -fmin-builtin-names -ohi prelude/Cls.hi)
+
+CompilePreludishly(prelude/Builtin,hs, $(PREL_OPTS) -split-objs Builtin -ohi prelude/Builtin.hi)
+CompilePreludishly(prelude/Core,hs, $(PREL_OPTS) -split-objs Core -ohi prelude/Core.hi)
+CompilePreludishly(prelude/IO,hs, $(PREL_OPTS) -split-objs IO -ohi prelude/IO.hi)
+CompilePreludishly(prelude/List,hs, $(PREL_OPTS) -split-objs List -H14m -ohi prelude/List.hi)
+CompilePreludishly(prelude/PS,lhs, $(PREL_OPTS) -split-objs PS -ohi prelude/PS.hi -monly-2-regs)
+CompilePreludishly(prelude/Prel,hs, $(PREL_OPTS) -split-objs Prel -H14m -ohi prelude/Prel.hi -monly-2-regs)
+CompilePreludishly(prelude/Text,hs, $(PREL_OPTS) -split-objs Text -H14m -ohi prelude/Text.hi -monly-4-regs)
+CompilePreludishly(prelude/FoldrBuild,hs, $(PREL_OPTS) -split-objs FoldrBuild -nohi)
+
+/* --- 1.3 I/O support --- */
+
+CompilePreludishly(prelude/PreludeIOError,lhs, $(PREL_OPTS) -split-objs IOError -ohi prelude/PreludeIOError.hi -fno-omit-reexported-instances -fomit-derived-read '-#include"stgio.h"')
+CompilePreludishly(prelude/PreludeWriteTextIO,lhs, $(PREL_OPTS) -split-objs WriteTextIO -ohi prelude/PreludeWriteTextIO.hi -fno-omit-reexported-instances '-#include"stgio.h"')
+CompilePreludishly(prelude/PreludeStdIO,lhs, $(PREL_OPTS) -split-objs StdIO -ohi prelude/PreludeStdIO.hi -fno-omit-reexported-instances '-#include"stgio.h"' -H14m)
+CompilePreludishly(prelude/PreludeIO,lhs, $(PREL_OPTS) -split-objs PIO -ohi prelude/PreludeIO.hi -fno-omit-reexported-instances '-#include"stgio.h"')
+CompilePreludishly(prelude/PreludeMonadicIO,lhs, $(PREL_OPTS) -split-objs MonadicIO -ohi prelude/PreludeMonadicIO.hi -fno-omit-reexported-instances '-#include"stgio.h"')
+CompilePreludishly(prelude/PreludeReadTextIO,lhs, $(PREL_OPTS) -split-objs ReadTextIO -ohi prelude/PreludeReadTextIO.hi -fno-omit-reexported-instances '-#include"stgio.h"')
+
+/* --- Haskell 1.3 libraries --- */
+
+CompilePreludishly(haskell-1.3/LibSystem,lhs, -fhaskell-1.3 -split-objs LibSystem '-#include"stgio.h"')
+CompilePreludishly(haskell-1.3/LibCPUTime,lhs, -fhaskell-1.3 -split-objs LibCPUTime '-#include"stgio.h"')
+CompilePreludishly(haskell-1.3/LibDirectory,lhs, -fhaskell-1.3 -split-objs LibDirectory '-#include"stgio.h"' -monly-3-regs)
+CompilePreludishly(haskell-1.3/LibTime,lhs, -fhaskell-1.3 -split-objs LibTime '-#include"stgio.h"' '-#include"timezone.h"' -H12m -monly-3-regs -optcO-DNON_POSIX_SOURCE)
+
+CompilePreludishly(haskell-1.3/LibPosix,lhs, -fhaskell-1.3 -split-objs LibPosix '-#include"stgio.h"' '-#include"libposix.h"')
+CompilePreludishly(haskell-1.3/LibPosixDB,lhs, -fhaskell-1.3 -split-objs LibPosixDB '-#include"stgio.h"' '-#include"libposix.h"')
+CompilePreludishly(haskell-1.3/LibPosixErr,lhs, -fhaskell-1.3 -split-objs LibPosixErr -H12m '-#include"stgio.h"' '-#include"libposix.h"')
+CompilePreludishly(haskell-1.3/LibPosixFiles,lhs, -fhaskell-1.3 -split-objs LibPosixFiles -H12m '-#include"stgio.h"' '-#include"libposix.h"')
+CompilePreludishly(haskell-1.3/LibPosixIO,lhs, -fhaskell-1.3 -split-objs LibPosixIO -H12m '-#include"stgio.h"' '-#include"libposix.h"' -monly-4-regs)
+CompilePreludishly(haskell-1.3/LibPosixProcEnv,lhs, -fhaskell-1.3 -split-objs LibPosixProcEnv -H12m '-#include"stgio.h"' '-#include"libposix.h"')
+CompilePreludishly(haskell-1.3/LibPosixProcPrim,lhs, -fhaskell-1.3 -split-objs LibPosixProcPrim -H16m '-#include"stgio.h"' '-#include"libposix.h"')
+CompilePreludishly(haskell-1.3/LibPosixTTY,lhs, -fhaskell-1.3 -split-objs LibPosixTTY -H12m '-#include"stgio.h"' '-#include"libposix.h"' -monly-2-regs)
+CompilePreludishly(haskell-1.3/LibPosixUtil,lhs, -fhaskell-1.3 -split-objs LibPosixUtil '-#include"stgio.h"' '-#include"libposix.h"' -monly-3-regs)
+
+/* ------
+ the next six create our main "Prelude" interface files;
+ NOT to be used here.
+ ------
+*/
+CompilePreludishly(glaExts/PreludeGlaMisc,lhs, $(PREL_OPTS) -split-objs GlaMisc -ohi glaExts/PreludeGlaMisc.hi -monly-4-regs)
+
+CompilePreludishly(prelude/PreludeHi,hs,$(PREL_OPTS) -split-objs Hi -ohi prelude/Prelude.hi -fno-omit-reexported-instances)
+CompilePreludishly(prelude/PrelCoreHi,hs,$(PREL_OPTS) -split-objs CoreHi -ohi prelude/PreludeCore.hi -fno-omit-reexported-instances)
+
+CompilePreludishly(prelude/Prel13,hs,$(PREL_OPTS) -iprelude:glaExts:haskell-1.3 -split-objs Hi13 -ohi prelude/Prel13.hi -fno-omit-reexported-instances)
+CompilePreludishly(prelude/PrelCore13,hs,$(PREL_OPTS) -iprelude:glaExts:haskell-1.3 -split-objs Core13 -ohi prelude/PrelCore13.hi -fno-omit-reexported-instances)
+
+/* --- GHC utilities library --- */
+
+CompilePreludishly(ghc/Bag,lhs, )
+CompilePreludishly(ghc/BitSet,lhs, -monly-4-regs)
+CompilePreludishly(ghc/CharSeq,lhs, )
+CompilePreludishly(ghc/FiniteMap,lhs, -ighc -fhaskell-1.3)
+CompilePreludishly(ghc/ListSetOps,lhs, )
+CompilePreludishly(ghc/Maybes,lhs, -fhaskell-1.3)
+CompilePreludishly(ghc/PackedString,lhs,)
+CompilePreludishly(ghc/Regex,lhs, -fhaskell-1.3 '-#include"ghcRegex.h"')
+CompilePreludishly(ghc/MatchPS,lhs, -ighc -fhaskell-1.3)
+CompilePreludishly(ghc/Pretty,lhs, -ighc -fhaskell-1.3)
+#if GhcWithReadline == YES
+CompilePreludishly(ghc/Readline,lhs, -ighc -fhaskell-1.3 '-#include"ghcReadline.h"')
+#endif
+#if GhcWithSockets == YES
+CompilePreludishly(ghc/Socket,lhs, -ighc -fhaskell-1.3)
+CompilePreludishly(ghc/SocketPrim,lhs, -ighc -fhaskell-1.3 -K2m -optcO-DNON_POSIX_SOURCE '-#include"ghcSockets.h"')
+CompilePreludishly(ghc/BSD,lhs, -ighc -fhaskell-1.3 -optcO-DNON_POSIX_SOURCE '-#include"ghcSockets.h"')
+CompilePreludishly(ghc/CError,lhs, -ighc -fhaskell-1.3 -K2m -fomit-derived-read)
+#endif
+CompilePreludishly(ghc/Set,lhs, -ighc -fhaskell-1.3)
+CompilePreludishly(ghc/Util,lhs, -ighc -fhaskell-1.3)
+
+/* --- HBC-compatibility library --- */
+
+CompilePreludishly(hbc/Algebra,hs,)
+CompilePreludishly(hbc/Hash,hs, )
+CompilePreludishly(hbc/ListUtil,hs, -ihbc -fhaskell-1.3)
+CompilePreludishly(hbc/Miranda,hs, -ihbc)
+CompilePreludishly(hbc/NameSupply,hs, )
+CompilePreludishly(hbc/Native,hs, -ihbc -fhaskell-1.3)
+CompilePreludishly(hbc/Number,hs, )
+CompilePreludishly(hbc/Parse,hs, -ihbc -fhaskell-1.3)
+CompilePreludishly(hbc/Polynomial,hs, -ihbc) /* this code could not ever have worked */
+CompilePreludishly(hbc/Pretty,hs, )
+CompilePreludishly(hbc/Printf,hs, )
+CompilePreludishly(hbc/QSort,hs, )
+CompilePreludishly(hbc/Random,hs, -monly-4-regs)
+CompilePreludishly(hbc/SimpleLex,hs, )
+CompilePreludishly(hbc/Time,hs, )
+CompilePreludishly(hbc/Trace,hs, -fglasgow-exts)
+CompilePreludishly(hbc/Word,hs, -K2m -monly-4-regs)
+
+/****************************************************************
+* *
+* misc "make" targets -- depend, clean, tags *
+* *
+****************************************************************/
+
+/* this is a BAD idea!
+ExtraStuffToClean( $(SRCS_C) )
+ without the .hc files, the distrib cannot boot itself
+*/
+ExtraStuffToBeVeryClean( $(SRCS_C) )
+ExtraStuffToBeVeryClean( $(STD_VERY_CLEAN) )
+
+ClearTagsFile()
+/* Ugly but OK? [WDP 94/09] */
+HsTagsTarget( */[A-Z]*.*hs )
+HSTAGS_OPTS=-cpp -fglasgow-exts
+
+/* pretty horrible */
+
+/* we do the depend stuff in a semi-automated way:
+
+ make depend # to create basic dependendencies
+ make print_file_lists # to dup dependencies for various builds
+ make Makefile # to slurp in dup'd dependencies
+ */
+
+print_file_list5 :
+ $(RM) Jmake.inc5
+ @echo making Jmake.inc5 ...
+ @echo '/* Machine-generated file: do not edit! */' > Jmake.inc5
+ perl ./make_extra_deps >> Jmake.inc5
+
+/* now include the extra dependencies so generated */
+#include "Jmake.inc5"
+
+/* should be *LAST* */
+#if HaskellCompilerType != HC_USE_HC_FILES
+ /* otherwise, the dependencies jeopardize our .hc files --
+ which are all we have! */
+MAIN_INCLUDE_DIR = $(TOP_PWD)/$(CURRENT_DIR)/$(GHC_INCLUDES)
+MKDEPENDHS_OPTS= -o .hc -iprelude:glaExts:ghc:hbc:haskell-1.3 -I$(MAIN_INCLUDE_DIR)
+
+HaskellDependTarget( $(BASIC_LHS) $(BASIC_HS_PREL) $(HBCLIB_HS) $(GHCLIB_LHS) $(ONE3_LHS) )
+#endif
diff --git a/ghc/lib/README b/ghc/lib/README
new file mode 100644
index 0000000000..17371547e3
--- /dev/null
+++ b/ghc/lib/README
@@ -0,0 +1,22 @@
+Library code for Glorious Glasgow Haskell
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+"Library code" is written in (possibly Glasgow-extended) Haskell. If
+it has to be written in C, it's in ../runtime.
+
+"tests" is supposed to be, well, tests.
+
+"prelude" and "glaExts" hold the standard and not-so-standard Prelude
+code; you get this stuff, like it or not.
+
+"std", "hbc" and "ghc" (and eventually "yale", etc., etc?) are
+libraries of useful modules. The idea is: once all implementers agree
+on a module, it goes in "std"; otherwise, it lives in an
+implementation-specific library.
+
+Still in development.
+
+Will Partain
+93/07/09
+
+[Still still in development -- WDP 94/12]
diff --git a/ghc/lib/ghc/BSD.hi b/ghc/lib/ghc/BSD.hi
new file mode 100644
index 0000000000..ad080d73a0
--- /dev/null
+++ b/ghc/lib/ghc/BSD.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BSD where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import SocketPrim(Family)
+data Family {-# GHC_PRAGMA AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX #-}
+data HostEntry = HostEntry [Char] [[Char]] Family [_Word]
+type HostName = [Char]
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry [Char] [[Char]] Int
+type ProtocolName = [Char]
+data ServiceEntry = ServiceEntry [Char] [[Char]] Int [Char]
+type ServiceName = [Char]
+endHostEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endProtocolEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endServiceEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+getHostByAddr :: Family -> _Word -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostByName :: [Char] -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostEntry :: _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByName :: [Char] -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByNumber :: Int -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolEntry :: _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceByName :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceEntry :: _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServicePortNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setHostEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setProtocolEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setServiceEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/BSD.lhs b/ghc/lib/ghc/BSD.lhs
new file mode 100644
index 0000000000..361e1b8769
--- /dev/null
+++ b/ghc/lib/ghc/BSD.lhs
@@ -0,0 +1,390 @@
+`%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+% Last Modified: Fri Jul 21 12:08:19 1995
+% Darren J Moffat <moffatd@dcs.gla.ac.uk>
+\section[BSD]{Misc BSD bindings}
+
+
+\begin{code}
+module BSD (
+
+ HostName(..),
+ ProtocolName(..),
+ ServiceName(..),
+ PortNumber(..),
+ ProtocolEntry(..),
+ ServiceEntry(..),
+ HostEntry(..),
+-- SelectData(..),
+
+ getHostName, -- :: IO String
+-- select, -- :: SelectData -> IO (Maybe SelectData)
+
+ getServiceByName, -- :: ServiceName -> IO ServiceEntry
+ getServicePortNumber, -- :: ServiceName -> IO PortNumber
+ getServiceEntry, -- :: IO ServiceEntry
+ setServiceEntry, -- :: Bool -> IO ()
+ endServiceEntry, -- :: IO ()
+
+ getProtocolByName, -- :: ProtocolName -> IO ProtocolEntry
+ getProtocolByNumber, -- :: ProtocolNumber -> IO ProtcolEntry
+ getProtocolNumber, -- :: ProtocolName -> ProtocolNumber
+ getProtocolEntry, -- :: IO ProtocolEntry
+ setProtocolEntry, -- :: Bool -> IO ()
+ endProtocolEntry, -- :: IO ()
+
+ getHostByName, -- :: HostName -> IO HostEntry
+ getHostByAddr, -- :: Family -> HostAddress -> IO HostEntry
+ getHostEntry, -- :: IO HostEntry
+ setHostEntry, -- :: Bool -> IO ()
+ endHostEntry, -- :: IO ()
+
+ -- make interface self-sufficient:
+ Family
+) where
+
+import LibPosixUtil
+import SocketPrim
+import PreludePrimIO
+import PreludeGlaMisc
+import PreludeGlaST
+\end{code}
+
+
+%***************************************************************************
+%* *
+\subsection[BSD-DBTypes]{Service, Protocol \& Host Database Types}
+%* *
+%***************************************************************************
+
+\begin{code}
+
+type HostName = String
+type ProtocolName = String
+type ProtocolNumber = Int
+type ServiceName = String
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry
+ ProtocolName -- Official Name
+ [ProtocolName] -- Set of Aliases
+ Int -- Protocol Number
+
+data ServiceEntry = ServiceEntry
+ ServiceName -- Official Name
+ [ServiceName] -- Set of Aliases
+ PortNumber -- Port Number
+ ProtocolName -- Protocol
+
+data HostEntry = HostEntry
+ HostName -- Official Name
+ [HostName] -- Set of Aliases
+ Family -- Host Type (currently AF_INET)
+ [HostAddress] -- Set of Network Addresses
+\end{code}
+
+
+
+%***************************************************************************
+%* *
+\subsection[LibSocket-DBAccess]{Service, Protocol Host Database Access}
+%* *
+%***************************************************************************
+
+
+
+Calling $getServiceByName$ for a given service and protocol returns the
+systems service entry. This should be used to find the port numbers
+for standard protocols such as smtp and FTP. The remaining three
+functions should be used for browsing the service database
+sequentially.
+
+Calling $setServiceEntry$ with $True$ indicates that the service
+database should be left open between calls to $getServiceEntry$. To
+close the database a call to $endServiceEntry$ is required. This
+database file is usually stored in the file /etc/services.
+
+
+\begin{code}
+getServiceByName :: ServiceName -> -- Service Name
+ ProtocolName -> -- Protocol Name
+ IO ServiceEntry -- Service Entry
+getServiceByName name proto =
+ _ccall_ getservbyname name proto `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such service entry")
+ else
+ unpackServiceEntry ptr `thenPrimIO` \ servent ->
+ return servent
+
+getServiceByPort :: PortNumber ->
+ ProtocolName ->
+ IO ServiceEntry
+getServiceByPort port proto =
+ _ccall_ getservbyport port proto `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such service entry")
+ else
+ unpackServiceEntry ptr `thenPrimIO` \ servent ->
+ return servent
+
+getServicePortNumber :: ServiceName -> IO PortNumber
+getServicePortNumber name =
+ getServiceByName name "tcp" >>= \ (ServiceEntry _ _ port _) ->
+ return port
+
+getServiceEntry :: IO ServiceEntry
+getServiceEntry =
+ _ccall_ getservent `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such service entry")
+ else
+ unpackServiceEntry ptr `thenPrimIO` \ servent ->
+ return servent
+
+setServiceEntry :: Bool -> IO ()
+setServiceEntry True = primIOToIO (_ccall_ setservent 1)
+setServiceEntry False = primIOToIO (_ccall_ setservent 0)
+
+endServiceEntry :: IO ()
+endServiceEntry = primIOToIO (_ccall_ endservent)
+
+\end{code}
+
+The following relate directly to the corresponding UNIX C calls for
+returning the protocol entries. The protocol entry is represented by
+the Haskell type type ProtocolEntry = (String, [String], Int).
+
+As for $setServiceEntry$ above, calling $setProtocolEntry$.
+determines whether or not the protocol database file, usually
+/etc/protocols, is to be kept open between calls of
+$getProtocolEntry$.
+
+\begin{code}
+getProtocolByName :: ProtocolName -> -- Protocol Name
+ IO ProtocolEntry -- Protocol Entry
+getProtocolByName name =
+ _ccall_ getprotobyname name `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such protocol entry")
+ else
+ unpackProtocolEntry ptr `thenPrimIO` \ protoent ->
+ return protoent
+
+getProtocolByNumber :: PortNumber -> -- Protocol Number
+ IO ProtocolEntry -- Protocol Entry
+getProtocolByNumber num =
+ _ccall_ getprotobynumber num `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such protocol entry")
+ else
+ unpackProtocolEntry ptr `thenPrimIO` \ protoent ->
+ return protoent
+
+getProtocolNumber :: ProtocolName -> IO ProtocolNumber
+getProtocolNumber proto =
+ getProtocolByName proto >>= \ (ProtocolEntry _ _ num) ->
+ return num
+
+getProtocolEntry :: IO ProtocolEntry -- Next Protocol Entry from DB
+getProtocolEntry =
+ _ccall_ getprotoent `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such protocol entry")
+ else
+ unpackProtocolEntry ptr `thenPrimIO` \ protoent ->
+ return protoent
+
+setProtocolEntry :: Bool -> IO () -- Keep DB Open ?
+setProtocolEntry True = primIOToIO (_ccall_ setprotoent 1)
+setProtocolEntry False = primIOToIO (_ccall_ setprotoent 0)
+
+endProtocolEntry :: IO ()
+endProtocolEntry = primIOToIO (_ccall_ endprotoent)
+
+\end{code}
+
+
+
+
+\begin{code}
+getHostByName :: HostName -> IO HostEntry
+getHostByName name =
+ _ccall_ gethostbyname name `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such host entry")
+ else
+ unpackHostEntry ptr `thenPrimIO` \ hostent ->
+ return hostent
+
+getHostByAddr :: Family -> HostAddress -> IO HostEntry
+getHostByAddr family addr =
+ _casm_ ``%r = gethostbyaddr (%0, sizeof(%0), %1);''
+ addr (packFamily family) `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such host entry")
+ else
+ unpackHostEntry ptr `thenPrimIO` \ hostent ->
+ return hostent
+
+getHostEntry :: IO HostEntry
+getHostEntry =
+ _ccall_ gethostent `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such host entry")
+ else
+ unpackHostEntry ptr `thenPrimIO` \ hostent ->
+ return hostent
+
+setHostEntry :: Bool -> IO ()
+setHostEntry True = primIOToIO (_ccall_ sethostent 1)
+setHostEntry False = primIOToIO (_ccall_ sethostent 0)
+
+endHostEntry :: IO ()
+endHostEntry = primIOToIO (_ccall_ endprotoent)
+\end{code}
+
+
+%***************************************************************************
+%* *
+\subsection[BSD-Misc]{Miscellaneous Functions}
+%* *
+%***************************************************************************
+
+
+The $select$ call is is used to make the process sleep until at least
+one of the given handles, is ready for reading, writing or has had an
+exception condition raised against it. The handles which are ready are
+returned in $SelectData$.
+
+Select will also return after the given timeout, which is given in
+nanoseconds, has expired. In this case $Nothing$ is returned.
+
+There is no provision of checking the amount of time remaining since
+the $select$ system call does not make this information available on
+all systems. Some always return a zero timeout where others return
+the time remaining.
+
+Possible return values from select are then:
+\begin{itemize}
+\item ([Handle], [Handle], [Handle], Nothing)
+\item Nothing
+\end{itemize}
+
+\begin{code}
+{-
+type SelectData = ([Handle], -- Read Handles
+ [Handle], -- Write Handles
+ [Handle], -- Exception Handles
+ Maybe Integer) -- Timeout
+select :: SelectData -> IO (Maybe SelectData)
+-}
+\end{code}
+
+
+Calling $getHostName$ returns the standard host name for the current
+processor, as set at boot time.
+
+\begin{code}
+
+getHostName :: IO HostName
+getHostName =
+ newCharArray (0,256) `thenPrimIO` \ ptr ->
+ _casm_ ``%r = gethostname(%0, 256);'' ptr `seqPrimIO`
+ mutByteArr2Addr ptr `thenPrimIO` \ ptr' ->
+ if ptr' == ``NULL'' then
+ fail "getHostName: unable to determine hostname"
+ else
+ return (_unpackPS (_packCString ptr'))
+\end{code}
+
+
+
+\begin{verbatim}
+ struct servent {
+ char *s_name; /* official name of service */
+ char **s_aliases; /* alias list */
+ int s_port; /* port service resides at */
+ char *s_proto; /* protocol to use */
+ };
+
+ The members of this structure are:
+ s_name The official name of the service.
+ s_aliases A zero terminated list of alternate
+ names for the service.
+ s_port The port number at which the ser-
+ vice resides. Port numbers are
+ returned in network short byte
+ order.
+ s_proto The name of the protocol to use
+ when contacting the service.
+\end{verbatim}
+
+\begin{code}
+unpackServiceEntry :: _Addr -> PrimIO ServiceEntry
+unpackServiceEntry ptr =
+ _casm_ ``%r = ((struct servent*)%0)->s_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct servent*)%0)->s_aliases;'' ptr
+ `thenPrimIO` \ alias ->
+ unvectorize alias 0 `thenStrictlyST` \ aliases ->
+ _casm_ ``%r = ((struct servent*)%0)->s_port;'' ptr
+ `thenPrimIO` \ port ->
+ _casm_ ``%r = ((struct servent*)%0)->s_proto;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ proto ->
+
+ returnPrimIO (ServiceEntry name aliases port proto)
+
+-------------------------------------------------------------------------------
+
+unpackProtocolEntry :: _Addr -> PrimIO ProtocolEntry
+unpackProtocolEntry ptr =
+ _casm_ ``%r = ((struct protoent*)%0)->p_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct protoent*)%0)->p_aliases;'' ptr
+ `thenPrimIO` \ alias ->
+ unvectorize alias 0 `thenStrictlyST` \ aliases ->
+ _casm_ ``%r = ((struct protoent*)%0)->p_proto;'' ptr
+ `thenPrimIO` \ proto ->
+
+ returnPrimIO (ProtocolEntry name aliases proto)
+
+
+-------------------------------------------------------------------------------
+
+unpackHostEntry :: _Addr -> PrimIO HostEntry
+unpackHostEntry ptr =
+ _casm_ ``%r = ((struct hostent*)%0)->h_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct hostent*)%0)->h_aliases;'' ptr
+ `thenPrimIO` \ alias ->
+ unvectorize alias 0 `thenStrictlyST` \ aliases ->
+{- _casm_ ``%r = ((struct hostent*)%0)->h_addr_list;'' ptr
+ `thenPrimIO` \ addrs ->
+ unvectorizeHostAddrs addrs 0 `thenStrictlyST` \ addrList ->
+-} unvectorizeHostAddrs ptr 0 `thenStrictlyST` \ addrList ->
+ returnPrimIO (HostEntry name aliases AF_INET addrList)
+
+-------------------------------------------------------------------------------
+
+unvectorizeHostAddrs :: _Addr -> Int -> PrimIO [_Word]
+unvectorizeHostAddrs ptr n
+ | str == ``NULL'' = returnPrimIO []
+ | otherwise =
+ _casm_ ``%r = (W_)ntohl(((struct hostent*)%0)->h_addr_list[(int)%1]);''
+ ptr n `thenPrimIO` \ x ->
+ unvectorizeHostAddrs ptr (n+1) `thenPrimIO` \ xs ->
+ returnPrimIO (x : xs)
+ where str = indexAddrOffAddr ptr n
+
+-------------------------------------------------------------------------------
+
+mutByteArr2Addr :: _MutableByteArray _RealWorld Int -> PrimIO _Addr
+mutByteArr2Addr arr = _casm_ `` %r=(void *)%0; '' arr
+
+
+\end{code}
diff --git a/ghc/lib/ghc/BSD_mc.hi b/ghc/lib/ghc/BSD_mc.hi
new file mode 100644
index 0000000000..ad080d73a0
--- /dev/null
+++ b/ghc/lib/ghc/BSD_mc.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BSD where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import SocketPrim(Family)
+data Family {-# GHC_PRAGMA AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX #-}
+data HostEntry = HostEntry [Char] [[Char]] Family [_Word]
+type HostName = [Char]
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry [Char] [[Char]] Int
+type ProtocolName = [Char]
+data ServiceEntry = ServiceEntry [Char] [[Char]] Int [Char]
+type ServiceName = [Char]
+endHostEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endProtocolEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endServiceEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+getHostByAddr :: Family -> _Word -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostByName :: [Char] -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostEntry :: _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByName :: [Char] -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByNumber :: Int -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolEntry :: _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceByName :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceEntry :: _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServicePortNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setHostEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setProtocolEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setServiceEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/BSD_mg.hi b/ghc/lib/ghc/BSD_mg.hi
new file mode 100644
index 0000000000..ad080d73a0
--- /dev/null
+++ b/ghc/lib/ghc/BSD_mg.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BSD where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import SocketPrim(Family)
+data Family {-# GHC_PRAGMA AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX #-}
+data HostEntry = HostEntry [Char] [[Char]] Family [_Word]
+type HostName = [Char]
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry [Char] [[Char]] Int
+type ProtocolName = [Char]
+data ServiceEntry = ServiceEntry [Char] [[Char]] Int [Char]
+type ServiceName = [Char]
+endHostEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endProtocolEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endServiceEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+getHostByAddr :: Family -> _Word -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostByName :: [Char] -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostEntry :: _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByName :: [Char] -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByNumber :: Int -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolEntry :: _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceByName :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceEntry :: _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServicePortNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setHostEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setProtocolEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setServiceEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/BSD_mp.hi b/ghc/lib/ghc/BSD_mp.hi
new file mode 100644
index 0000000000..ad080d73a0
--- /dev/null
+++ b/ghc/lib/ghc/BSD_mp.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BSD where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import SocketPrim(Family)
+data Family {-# GHC_PRAGMA AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX #-}
+data HostEntry = HostEntry [Char] [[Char]] Family [_Word]
+type HostName = [Char]
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry [Char] [[Char]] Int
+type ProtocolName = [Char]
+data ServiceEntry = ServiceEntry [Char] [[Char]] Int [Char]
+type ServiceName = [Char]
+endHostEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endProtocolEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endServiceEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+getHostByAddr :: Family -> _Word -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostByName :: [Char] -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostEntry :: _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByName :: [Char] -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByNumber :: Int -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolEntry :: _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceByName :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceEntry :: _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServicePortNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setHostEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setProtocolEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setServiceEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/BSD_p.hi b/ghc/lib/ghc/BSD_p.hi
new file mode 100644
index 0000000000..ad080d73a0
--- /dev/null
+++ b/ghc/lib/ghc/BSD_p.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BSD where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import SocketPrim(Family)
+data Family {-# GHC_PRAGMA AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX #-}
+data HostEntry = HostEntry [Char] [[Char]] Family [_Word]
+type HostName = [Char]
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry [Char] [[Char]] Int
+type ProtocolName = [Char]
+data ServiceEntry = ServiceEntry [Char] [[Char]] Int [Char]
+type ServiceName = [Char]
+endHostEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endProtocolEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endServiceEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+getHostByAddr :: Family -> _Word -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostByName :: [Char] -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostEntry :: _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByName :: [Char] -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByNumber :: Int -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolEntry :: _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceByName :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceEntry :: _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServicePortNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setHostEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setProtocolEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setServiceEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/BSD_t.hi b/ghc/lib/ghc/BSD_t.hi
new file mode 100644
index 0000000000..ad080d73a0
--- /dev/null
+++ b/ghc/lib/ghc/BSD_t.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BSD where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import SocketPrim(Family)
+data Family {-# GHC_PRAGMA AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX #-}
+data HostEntry = HostEntry [Char] [[Char]] Family [_Word]
+type HostName = [Char]
+type PortNumber = Int
+data ProtocolEntry = ProtocolEntry [Char] [[Char]] Int
+type ProtocolName = [Char]
+data ServiceEntry = ServiceEntry [Char] [[Char]] Int [Char]
+type ServiceName = [Char]
+endHostEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endProtocolEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+endServiceEntry :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+getHostByAddr :: Family -> _Word -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostByName :: [Char] -> _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostEntry :: _State _RealWorld -> (Either IOError13 HostEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getHostName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByName :: [Char] -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolByNumber :: Int -> _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolEntry :: _State _RealWorld -> (Either IOError13 ProtocolEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProtocolNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceByName :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServiceEntry :: _State _RealWorld -> (Either IOError13 ServiceEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getServicePortNumber :: [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setHostEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setProtocolEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+setServiceEntry :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag.hi b/ghc/lib/ghc/Bag.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag.lhs b/ghc/lib/ghc/Bag.lhs
new file mode 100644
index 0000000000..3734df5886
--- /dev/null
+++ b/ghc/lib/ghc/Bag.lhs
@@ -0,0 +1,110 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+%
+\section[Bags]{@Bag@: an unordered collection with duplicates}
+
+\begin{code}
+module Bag (
+ Bag, -- abstract type
+
+ emptyBag, unitBag, unionBags, unionManyBags,
+#if ! defined(COMPILING_GHC)
+ elemBag,
+#endif
+ filterBag, partitionBag,
+ isEmptyBag, snocBag, listToBag, bagToList
+ ) where
+
+#if defined(COMPILING_GHC)
+import Id ( Id )
+import Outputable
+import Pretty
+import Util
+#endif
+
+data Bag a
+ = EmptyBag
+ | UnitBag a
+ | TwoBags (Bag a) (Bag a) -- The ADT guarantees that at least
+ -- one branch is non-empty.
+ | ListOfBags [Bag a] -- The list is non-empty
+
+emptyBag = EmptyBag
+unitBag = UnitBag
+
+#if ! defined(COMPILING_GHC)
+-- not used in GHC
+elemBag :: Eq a => a -> Bag a -> Bool
+elemBag x EmptyBag = False
+elemBag x (UnitBag y) = x==y
+elemBag x (TwoBags b1 b2) = x `elemBag` b1 || x `elemBag` b2
+elemBag x (ListOfBags bs) = any (x `elemBag`) bs
+#endif
+
+unionManyBags [] = EmptyBag
+unionManyBags xs = ListOfBags xs
+
+-- This one is a bit stricter! The bag will get completely evaluated.
+
+
+unionBags EmptyBag b = b
+unionBags b EmptyBag = b
+unionBags b1 b2 = TwoBags b1 b2
+
+snocBag :: Bag a -> a -> Bag a
+snocBag bag elt = bag `unionBags` (unitBag elt)
+
+isEmptyBag EmptyBag = True
+isEmptyBag (TwoBags b1 b2) = isEmptyBag b1 && isEmptyBag b2 -- Paranoid, but safe
+isEmptyBag (ListOfBags bs) = all isEmptyBag bs
+isEmptyBag other = False
+
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+filterBag pred EmptyBag = EmptyBag
+filterBag pred b@(UnitBag val) = if pred val then b else EmptyBag
+filterBag pred (TwoBags b1 b2) = sat1 `unionBags` sat2
+ where
+ sat1 = filterBag pred b1
+ sat2 = filterBag pred b2
+filterBag pred (ListOfBags bs) = ListOfBags sats
+ where
+ sats = [filterBag pred b | b <- bs]
+
+
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a {- Satisfy predictate -},
+ Bag a {- Don't -})
+partitionBag pred EmptyBag = (EmptyBag, EmptyBag)
+partitionBag pred b@(UnitBag val) = if pred val then (b, EmptyBag) else (EmptyBag, b)
+partitionBag pred (TwoBags b1 b2) = (sat1 `unionBags` sat2, fail1 `unionBags` fail2)
+ where
+ (sat1,fail1) = partitionBag pred b1
+ (sat2,fail2) = partitionBag pred b2
+partitionBag pred (ListOfBags bs) = (ListOfBags sats, ListOfBags fails)
+ where
+ (sats, fails) = unzip [partitionBag pred b | b <- bs]
+
+
+listToBag :: [a] -> Bag a
+listToBag lst = foldr TwoBags EmptyBag (map UnitBag lst)
+
+bagToList :: Bag a -> [a]
+bagToList b = b_to_l b []
+ where
+ -- (b_to_l b xs) flattens b and puts xs on the end.
+ b_to_l EmptyBag xs = xs
+ b_to_l (UnitBag x) xs = x:xs
+ b_to_l (TwoBags b1 b2) xs = b_to_l b1 (b_to_l b2 xs)
+ b_to_l (ListOfBags bs) xs = foldr b_to_l xs bs
+\end{code}
+
+\begin{code}
+#if defined(COMPILING_GHC)
+
+instance (Outputable a) => Outputable (Bag a) where
+ ppr sty EmptyBag = ppStr "emptyBag"
+ ppr sty (UnitBag a) = ppr sty a
+ ppr sty (TwoBags b1 b2) = ppCat [ppr sty b1, pp'SP, ppr sty b2]
+ ppr sty (ListOfBags bs) = ppCat [ppLbrack, interpp'SP sty bs, ppRbrack]
+
+#endif {- COMPILING_GHC -}
+\end{code}
diff --git a/ghc/lib/ghc/Bag_mc.hi b/ghc/lib/ghc/Bag_mc.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_mc.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag_mg.hi b/ghc/lib/ghc/Bag_mg.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_mg.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag_mp.hi b/ghc/lib/ghc/Bag_mp.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_mp.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag_mr.hi b/ghc/lib/ghc/Bag_mr.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_mr.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag_mt.hi b/ghc/lib/ghc/Bag_mt.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_mt.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag_p.hi b/ghc/lib/ghc/Bag_p.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_p.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/Bag_t.hi b/ghc/lib/ghc/Bag_t.hi
new file mode 100644
index 0000000000..ba2a1ec190
--- /dev/null
+++ b/ghc/lib/ghc/Bag_t.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Bag where
+data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
+bagToList :: Bag a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+elemBag :: Eq a => a -> Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptyBag :: Bag a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ Bag EmptyBag [u0] [] _N_ #-}
+filterBag :: (a -> Bool) -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+isEmptyBag :: Bag a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToBag :: [a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+partitionBag :: (a -> Bool) -> Bag a -> (Bag a, Bag a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+snocBag :: Bag a -> a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionBags :: Bag a -> Bag a -> Bag a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 1 2 CC 13 _/\_ u0 -> \ (u1 :: Bag u0) (u2 :: Bag u0) -> case u1 of { _ALG_ _ORIG_ Bag EmptyBag -> u2; (u3 :: Bag u0) -> case u2 of { _ALG_ _ORIG_ Bag EmptyBag -> u3; (u4 :: Bag u0) -> _!_ _ORIG_ Bag TwoBags [u0] [u1, u2] } } _N_ #-}
+unionManyBags :: [Bag a] -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [Bag u0]) -> case u1 of { _ALG_ (:) (u2 :: Bag u0) (u3 :: [Bag u0]) -> _!_ _ORIG_ Bag ListOfBags [u0] [u1]; _NIL_ -> _!_ _ORIG_ Bag EmptyBag [u0] []; _NO_DEFLT_ } _N_ #-}
+unitBag :: a -> Bag a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ _ORIG_ Bag UnitBag [u0] [u1] _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet.hi b/ghc/lib/ghc/BitSet.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet.lhs b/ghc/lib/ghc/BitSet.lhs
new file mode 100644
index 0000000000..eb6b52396f
--- /dev/null
+++ b/ghc/lib/ghc/BitSet.lhs
@@ -0,0 +1,197 @@
+%
+% (c) The GRASP Project, Glasgow University, 1994-1995
+%
+\section[BitSet]{An implementation of very small sets}
+
+Bit sets are a fast implementation of sets of integers ranging from 0
+to one less than the number of bits in a machine word (typically 31).
+If any element exceeds the maximum value for a particular machine
+architecture, the results of these operations are undefined. You have
+been warned. If you put any safety checks in this code, I will have
+to kill you.
+
+Note: the Yale Haskell implementation won't provide a full 32 bits.
+However, if you can handle the performance loss, you could change to
+Integer and get virtually unlimited sets.
+
+\begin{code}
+
+module BitSet (
+ BitSet, -- abstract type
+ mkBS, listBS, emptyBS, singletonBS,
+ unionBS, minusBS
+#if ! defined(COMPILING_GHC)
+ , elementBS, intersectBS, isEmptyBS
+#endif
+ ) where
+
+#ifdef __GLASGOW_HASKELL__
+-- nothing to import
+#elif defined(__YALE_HASKELL__)
+{-hide import from mkdependHS-}
+import
+ LogOpPrims
+#else
+{-hide import from mkdependHS-}
+import
+ Word
+#endif
+
+#ifdef __GLASGOW_HASKELL__
+
+data BitSet = MkBS Word#
+
+emptyBS :: BitSet
+emptyBS = MkBS (int2Word# 0#)
+
+mkBS :: [Int] -> BitSet
+mkBS xs = foldr (unionBS . singletonBS) emptyBS xs
+
+singletonBS :: Int -> BitSet
+singletonBS x = case x of
+ I# i# -> MkBS ((int2Word# 1#) `shiftL#` i#)
+
+unionBS :: BitSet -> BitSet -> BitSet
+unionBS (MkBS x#) (MkBS y#) = MkBS (x# `or#` y#)
+
+minusBS :: BitSet -> BitSet -> BitSet
+minusBS (MkBS x#) (MkBS y#) = MkBS (x# `and#` (not# y#))
+
+#if ! defined(COMPILING_GHC)
+-- not used in GHC
+isEmptyBS :: BitSet -> Bool
+isEmptyBS (MkBS s#) =
+ case word2Int# s# of
+ 0# -> True
+ _ -> False
+
+intersectBS :: BitSet -> BitSet -> BitSet
+intersectBS (MkBS x#) (MkBS y#) = MkBS (x# `and#` y#)
+
+elementBS :: Int -> BitSet -> Bool
+elementBS x (MkBS s#) = case x of
+ I# i# -> case word2Int# (((int2Word# 1#) `shiftL#` i#) `and#` s#) of
+ 0# -> False
+ _ -> True
+#endif
+
+listBS :: BitSet -> [Int]
+listBS s = listify s 0
+ where listify (MkBS s#) n =
+ case word2Int# s# of
+ 0# -> []
+ _ -> let s' = (MkBS (s# `shiftr` 1#))
+ more = listify s' (n + 1)
+ in case word2Int# (s# `and#` (int2Word# 1#)) of
+ 0# -> more
+ _ -> n : more
+# if __GLASGOW_HASKELL__ >= 23
+ shiftr x y = shiftRL# x y
+# else
+ shiftr x y = shiftR# x y
+# endif
+
+#elif defined(__YALE_HASKELL__)
+
+data BitSet = MkBS Int
+
+emptyBS :: BitSet
+emptyBS = MkBS 0
+
+mkBS :: [Int] -> BitSet
+mkBS xs = foldr (unionBS . singletonBS) emptyBS xs
+
+singletonBS :: Int -> BitSet
+singletonBS x = MkBS (1 `ashInt` x)
+
+unionBS :: BitSet -> BitSet -> BitSet
+unionBS (MkBS x) (MkBS y) = MkBS (x `logiorInt` y)
+
+#if ! defined(COMPILING_GHC)
+-- not used in GHC
+isEmptyBS :: BitSet -> Bool
+isEmptyBS (MkBS s) =
+ case s of
+ 0 -> True
+ _ -> False
+
+intersectBS :: BitSet -> BitSet -> BitSet
+intersectBS (MkBS x) (MkBS y) = MkBS (x `logandInt` y)
+
+elementBS :: Int -> BitSet -> Bool
+elementBS x (MkBS s) =
+ case logbitpInt x s of
+ 0 -> False
+ _ -> True
+#endif
+
+minusBS :: BitSet -> BitSet -> BitSet
+minusBS (MkBS x) (MkBS y) = MkBS (x `logandc2Int` y)
+
+-- rewritten to avoid right shifts (which would give nonsense on negative
+-- values.
+listBS :: BitSet -> [Int]
+listBS (MkBS s) = listify s 0 1
+ where listify s n m =
+ case s of
+ 0 -> []
+ _ -> let n' = n+1; m' = m+m in
+ case logbitpInt s m of
+ 0 -> listify s n' m'
+ _ -> n : listify (s `logandc2Int` m) n' m'
+
+#else /* HBC, perhaps? */
+
+data BitSet = MkBS Word
+
+emptyBS :: BitSet
+emptyBS = MkBS 0
+
+mkBS :: [Int] -> BitSet
+mkBS xs = foldr (unionBS . singletonBS) emptyBS xs
+
+singletonBS :: Int -> BitSet
+singletonBS x = MkBS (1 `bitLsh` x)
+
+unionBS :: BitSet -> BitSet -> BitSet
+unionBS (MkBS x) (MkBS y) = MkBS (x `bitOr` y)
+
+#if ! defined(COMPILING_GHC)
+-- not used in GHC
+isEmptyBS :: BitSet -> Bool
+isEmptyBS (MkBS s) =
+ case s of
+ 0 -> True
+ _ -> False
+
+intersectBS :: BitSet -> BitSet -> BitSet
+intersectBS (MkBS x) (MkBS y) = MkBS (x `bitAnd` y)
+
+elementBS :: Int -> BitSet -> Bool
+elementBS x (MkBS s) =
+ case (1 `bitLsh` x) `bitAnd` s of
+ 0 -> False
+ _ -> True
+#endif
+
+minusBS :: BitSet -> BitSet -> BitSet
+minusBS (MkBS x) (MkBS y) = MkBS (x `bitAnd` (bitCompl y))
+
+listBS :: BitSet -> [Int]
+listBS (MkBS s) = listify s 0
+ where listify s n =
+ case s of
+ 0 -> []
+ _ -> let s' = s `bitRsh` 1
+ more = listify s' (n + 1)
+ in case (s `bitAnd` 1) of
+ 0 -> more
+ _ -> n : more
+
+#endif
+
+\end{code}
+
+
+
+
diff --git a/ghc/lib/ghc/BitSet_mc.hi b/ghc/lib/ghc/BitSet_mc.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_mc.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet_mg.hi b/ghc/lib/ghc/BitSet_mg.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_mg.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet_mp.hi b/ghc/lib/ghc/BitSet_mp.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_mp.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet_mr.hi b/ghc/lib/ghc/BitSet_mr.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_mr.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet_mt.hi b/ghc/lib/ghc/BitSet_mt.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_mt.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet_p.hi b/ghc/lib/ghc/BitSet_p.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_p.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/BitSet_t.hi b/ghc/lib/ghc/BitSet_t.hi
new file mode 100644
index 0000000000..3642c0e5ae
--- /dev/null
+++ b/ghc/lib/ghc/BitSet_t.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface BitSet where
+data BitSet {-# GHC_PRAGMA MkBS Word# #-}
+elementBS :: Int -> BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptyBS :: BitSet
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [0#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u0] } _N_ #-}
+intersectBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isEmptyBS :: BitSet -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ 0# -> _!_ True [] []; (u1 :: Int#) -> _!_ False [] [] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ 0# -> _!_ True [] []; (u2 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+listBS :: BitSet -> [Int]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minusBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> case _#_ and# [] [u0, u2] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ not# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ and# [] [u2, u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+mkBS :: [Int] -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+singletonBS :: Int -> BitSet
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u1 :: Word#) -> case _#_ shiftL# [] [u1, u0] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [1#] of { _PRIM_ (u2 :: Word#) -> case _#_ shiftL# [] [u2, u1] of { _PRIM_ (u3 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u3] } }; _NO_DEFLT_ } _N_ #-}
+unionBS :: BitSet -> BitSet -> BitSet
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: BitSet) (u1 :: BitSet) -> case u0 of { _ALG_ _ORIG_ BitSet MkBS (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ BitSet MkBS (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ BitSet MkBS [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/CError.hi b/ghc/lib/ghc/CError.hi
new file mode 100644
index 0000000000..e13f94bde2
--- /dev/null
+++ b/ghc/lib/ghc/CError.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CError where
+data CErrorCode
+ = NOERROR | EPERM | ENOENT | ESRCH | EINTR | EIO | ENXIO | E2BIG | ENOEXEC | EBADF | ECHILD | EAGAIN | ENOMEM | EACCES | EFAULT | ENOTBLK | EBUSY | EEXIST | EXDEV | ENODEV | ENOTDIR | EISDIR | EINVAL | ENFILE | EMFILE | ENOTTY | ETXTBSY | EFBIG | ENOSPC | ESPIPE | EROFS | EMLINK | EPIPE | EDOM | ERANGE | EWOULDBLOCK | EINPROGRESS | EALREADY | ENOTSOCK | EDESTADDRREQ | EMSGSIZE | EPROTOTYPE | ENOPROTOOPT | EPROTONOSUPPOR | ESOCKTNOSUPPORT | EOPNOTSUPP | EPFNOSUPPORT | EAFNOSUPPORT | EADDRINUSE | EADDRNOTAVAIL | ENETDOWN | ENETUNREACH | ENETRESET | ECONNABORTED | ECONNRESET | ENOBUFS | EISCONN | ENOTCONN | ESHUTDOWN | ETOOMANYREFS | ETIMEDOUT | ECONNREFUSED | ELOOP | ENAMETOOLONG | EHOSTDOWN | EHOSTUNREACH | ENOTEMPTY | EPROCLIM | EUSERS | EDQUOT | ESTALE | EREMOTE | ENOSTR | ETIME | ENOSR | ENOMSG | EBADMSG | EIDRM | EDEADLK | ENOLCK | ENONET | ERREMOTE | ENOLINK | EADV | ESRMNT | ECOMM | EPROTO | EMULTIHOP | EDOTDOT | EREMCHG | ENOSYS
+errorCodeToStr :: CErrorCode -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
+getCErrorCode :: _State _RealWorld -> (CErrorCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCErrorCode :: CErrorCode -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "EU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool)] [_CONSTM_ Eq (==) (CErrorCode), _CONSTM_ Eq (/=) (CErrorCode)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord CErrorCode}}, ((CErrorCode, CErrorCode) -> [CErrorCode]), ((CErrorCode, CErrorCode) -> CErrorCode -> Int), ((CErrorCode, CErrorCode) -> CErrorCode -> Bool)] [_DFUN_ Ord (CErrorCode), _CONSTM_ Ix range (CErrorCode), _CONSTM_ Ix index (CErrorCode), _CONSTM_ Ix inRange (CErrorCode)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq CErrorCode}}, (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> _CMP_TAG)] [_DFUN_ Eq (CErrorCode), _CONSTM_ Ord (<) (CErrorCode), _CONSTM_ Ord (<=) (CErrorCode), _CONSTM_ Ord (>=) (CErrorCode), _CONSTM_ Ord (>) (CErrorCode), _CONSTM_ Ord max (CErrorCode), _CONSTM_ Ord min (CErrorCode), _CONSTM_ Ord _tagCmp (CErrorCode)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(CErrorCode, [Char])]), (Int -> CErrorCode -> [Char] -> [Char]), ([Char] -> [([CErrorCode], [Char])]), ([CErrorCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (CErrorCode), _CONSTM_ Text showsPrec (CErrorCode), _CONSTM_ Text readList (CErrorCode), _CONSTM_ Text showList (CErrorCode)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(CErrorCode, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/CError.lhs b/ghc/lib/ghc/CError.lhs
new file mode 100644
index 0000000000..c5a3787059
--- /dev/null
+++ b/ghc/lib/ghc/CError.lhs
@@ -0,0 +1,285 @@
+`%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+% Last Modified: Wed Jul 19 13:12:10 1995
+% Darren J Moffat <moffatd@dcs.gla.ac.uk>
+%
+% Generated from: @(#)errno.h 2.14 90/01/23 SMI; from UCB 4.1 82/12/28
+\section[CError]{Interface to C Error Codes}
+
+\begin{code}
+module CError (
+ CErrorCode(..),
+
+ errorCodeToStr, -- :: CErrorCode -> String
+ getCErrorCode, -- :: PrimIO CErrorCode
+ setCErrorCode -- :: CErrorCode -> PrimIO ()
+
+) where
+
+import PreludeGlaST
+\end{code}
+
+import PreludeGlaMisc
+import LibSystem
+\begin{code}
+data CErrorCode =
+ NOERROR -- Added as dummy value since deriving Ix starts at 0
+ | EPERM -- Not owner
+ | ENOENT -- No such file or directory
+ | ESRCH -- No such process
+ | EINTR -- Interrupted system call
+ | EIO -- I/O error
+ | ENXIO -- No such device or address
+ | E2BIG -- Arg list too long
+ | ENOEXEC -- Exec format error
+ | EBADF -- Bad file number
+ | ECHILD -- No children
+ | EAGAIN -- No more processes
+ | ENOMEM -- Not enough core
+ | EACCES -- Permission denied
+ | EFAULT -- Bad address
+ | ENOTBLK -- Block device required
+ | EBUSY -- Mount device busy
+ | EEXIST -- File exists
+ | EXDEV -- Cross-device link
+ | ENODEV -- No such device
+ | ENOTDIR -- Not a directory*/
+ | EISDIR -- Is a directory
+ | EINVAL -- Invalid argument
+ | ENFILE -- File table overflow
+ | EMFILE -- Too many open files
+ | ENOTTY -- Not a typewriter
+ | ETXTBSY -- Text file busy
+ | EFBIG -- File too large
+ | ENOSPC -- No space left on device
+ | ESPIPE -- Illegal seek
+ | EROFS -- Read-only file system
+ | EMLINK -- Too many links
+ | EPIPE -- Broken pipe
+
+-- math software
+ | EDOM -- Argument too large
+ | ERANGE -- Result too large
+
+-- non-blocking and interrupt i/o
+ | EWOULDBLOCK -- Operation would block
+ | EINPROGRESS -- Operation now in progress
+ | EALREADY -- Operation already in progress
+-- ipc/network software
+
+-- argument errors
+ | ENOTSOCK -- Socket operation on non-socket
+ | EDESTADDRREQ -- Destination address required
+ | EMSGSIZE -- Message too long
+ | EPROTOTYPE -- Protocol wrong type for socket
+ | ENOPROTOOPT -- Protocol not available
+ | EPROTONOSUPPOR -- Protocol not supported
+ | ESOCKTNOSUPPORT -- Socket type not supported
+ | EOPNOTSUPP -- Operation not supported on socket
+ | EPFNOSUPPORT -- Protocol family not supported
+ | EAFNOSUPPORT -- Address family not supported by protocol family
+ | EADDRINUSE -- Address already in use
+ | EADDRNOTAVAIL -- Can't assign requested address
+-- operational errors
+ | ENETDOWN -- Network is down
+ | ENETUNREACH -- Network is unreachable
+ | ENETRESET -- Network dropped connection on reset
+ | ECONNABORTED -- Software caused connection abort
+ | ECONNRESET -- Connection reset by peer
+ | ENOBUFS -- No buffer space available
+ | EISCONN -- Socket is already connected
+ | ENOTCONN -- Socket is not connected
+ | ESHUTDOWN -- Can't send after socket shutdown
+ | ETOOMANYREFS -- Too many references: can't splice
+ | ETIMEDOUT -- Connection timed out
+ | ECONNREFUSED -- Connection refused
+
+ | ELOOP -- Too many levels of symbolic links
+ | ENAMETOOLONG -- File name too long
+
+-- should be rearranged
+ | EHOSTDOWN -- Host is down
+ | EHOSTUNREACH -- No route to host
+ | ENOTEMPTY -- Directory not empty
+
+-- quotas & mush
+ | EPROCLIM -- Too many processes
+ | EUSERS -- Too many users
+ | EDQUOT -- Disc quota exceeded
+
+-- Network File System
+ | ESTALE -- Stale NFS file handle
+ | EREMOTE -- Too many levels of remote in path
+
+-- streams
+ | ENOSTR -- Device is not a stream
+ | ETIME -- Timer expired
+ | ENOSR -- Out of streams resources
+ | ENOMSG -- No message of desired type
+ | EBADMSG -- Trying to read unreadable message
+
+-- SystemV IPC
+ | EIDRM -- Identifier removed
+
+-- SystemV Record Locking
+ | EDEADLK -- Deadlock condition.
+ | ENOLCK -- No record locks available.
+
+-- RFS
+ | ENONET -- Machine is not on the network
+ | ERREMOTE -- Object is remote
+ | ENOLINK -- the link has been severed
+ | EADV -- advertise error
+ | ESRMNT -- srmount error
+ | ECOMM -- Communication error on send
+ | EPROTO -- Protocol error
+ | EMULTIHOP -- multihop attempted
+ | EDOTDOT -- Cross mount point (not an error)
+ | EREMCHG -- Remote address changed
+-- POSIX
+ | ENOSYS -- function not implemented
+
+ deriving (Eq,Ord,Ix,Text)
+
+
+errorCodeToStr :: CErrorCode -> String
+errorCodeToStr NOERROR = ""
+errorCodeToStr EPERM = "Not owner"
+errorCodeToStr ENOENT = "No such file or directory"
+errorCodeToStr ESRCH = "No such process"
+errorCodeToStr EINTR = "Interrupted system call"
+errorCodeToStr EIO = "I/O error"
+errorCodeToStr ENXIO = "No such device or address"
+errorCodeToStr E2BIG = "Arg list too long"
+errorCodeToStr ENOEXEC = "Exec format error"
+errorCodeToStr EBADF = "Bad file number"
+errorCodeToStr ECHILD = "No children"
+errorCodeToStr EAGAIN = "No more processes"
+errorCodeToStr ENOMEM = "Not enough core"
+errorCodeToStr EACCES = "Permission denied"
+errorCodeToStr EFAULT = "Bad address"
+errorCodeToStr ENOTBLK = "Block device required"
+errorCodeToStr EBUSY = "Mount device busy"
+errorCodeToStr EEXIST = "File exists"
+errorCodeToStr EXDEV = "Cross-device link"
+errorCodeToStr ENODEV = "No such device"
+errorCodeToStr ENOTDIR = "Not a directory"
+errorCodeToStr EISDIR = "Is a directory"
+errorCodeToStr EINVAL = "Invalid argument"
+errorCodeToStr ENFILE = "File table overflow"
+errorCodeToStr EMFILE = "Too many open files"
+errorCodeToStr ENOTTY = "Not a typewriter"
+errorCodeToStr ETXTBSY = "Text file busy"
+errorCodeToStr EFBIG = "File too large"
+errorCodeToStr ENOSPC = "No space left on device"
+errorCodeToStr ESPIPE = "Illegal seek"
+errorCodeToStr EROFS = "Read-only file system"
+errorCodeToStr EMLINK = "Too many links"
+errorCodeToStr EPIPE = "Broken pipe"
+
+-- math software
+errorCodeToStr EDOM = "Argument too large"
+errorCodeToStr ERANGE = "Result too large"
+
+-- non-blocking and interrupt i/o"
+errorCodeToStr EWOULDBLOCK = "Operation would block"
+errorCodeToStr EINPROGRESS = "Operation now in progress"
+errorCodeToStr EALREADY = "Operation already in progress"
+-- ipc/network software
+
+-- argument errors
+errorCodeToStr ENOTSOCK = "Socket operation on non-socket"
+errorCodeToStr EDESTADDRREQ = "Destination address required"
+errorCodeToStr EMSGSIZE = "Message too long"
+errorCodeToStr EPROTOTYPE = "Protocol wrong type for socket"
+errorCodeToStr ENOPROTOOPT = "Protocol not available"
+errorCodeToStr EPROTONOSUPPOR = "Protocol not supported"
+errorCodeToStr ESOCKTNOSUPPORT = "Socket type not supported"
+errorCodeToStr EOPNOTSUPP = "Operation not supported on socket"
+errorCodeToStr EPFNOSUPPORT = "Protocol family not supported"
+errorCodeToStr EAFNOSUPPORT = "Address family not supported by protocol family"
+errorCodeToStr EADDRINUSE = "Address already in use"
+errorCodeToStr EADDRNOTAVAIL = "Can't assign requested address"
+
+-- operational errors
+errorCodeToStr ENETDOWN = "Network is down"
+errorCodeToStr ENETUNREACH = "Network is unreachable"
+errorCodeToStr ENETRESET = "Network dropped connection on reset"
+errorCodeToStr ECONNABORTED = "Software caused connection abort"
+errorCodeToStr ECONNRESET = "Connection reset by peer"
+errorCodeToStr ENOBUFS = "No buffer space available"
+errorCodeToStr EISCONN = "Socket is already connected"
+errorCodeToStr ENOTCONN = "Socket is not connected"
+errorCodeToStr ESHUTDOWN = "Can't send after socket shutdown"
+errorCodeToStr ETOOMANYREFS = "Too many references: can't splice"
+errorCodeToStr ETIMEDOUT = "Connection timed out"
+errorCodeToStr ECONNREFUSED = "Connection refused"
+
+errorCodeToStr ELOOP = "Too many levels of symbolic links"
+errorCodeToStr ENAMETOOLONG = "File name too long"
+
+-- should be rearranged
+errorCodeToStr EHOSTDOWN = "Host is down"
+errorCodeToStr EHOSTUNREACH = "No route to host"
+errorCodeToStr ENOTEMPTY = "Directory not empty"
+
+-- quotas & mush
+errorCodeToStr EPROCLIM = "Too many processes"
+errorCodeToStr EUSERS = "Too many users"
+errorCodeToStr EDQUOT = "Disc quota exceeded"
+
+-- Network File System
+errorCodeToStr ESTALE = "Stale NFS file handle"
+errorCodeToStr EREMOTE = "Too many levels of remote in path"
+
+-- streams
+errorCodeToStr ENOSTR = "Device is not a stream"
+errorCodeToStr ETIME = "Timer expired"
+errorCodeToStr ENOSR = "Out of streams resources"
+errorCodeToStr ENOMSG = "No message of desired type"
+errorCodeToStr EBADMSG = "Trying to read unreadable message"
+
+-- SystemV IPC
+errorCodeToStr EIDRM = "Identifier removed"
+
+-- SystemV Record Locking
+errorCodeToStr EDEADLK = "Deadlock condition."
+errorCodeToStr ENOLCK = "No record locks available."
+
+-- RFS
+errorCodeToStr ENONET = "Machine is not on the network"
+errorCodeToStr ERREMOTE = "Object is remote"
+errorCodeToStr ENOLINK = "the link has been severed"
+errorCodeToStr EADV = "advertise error"
+errorCodeToStr ESRMNT = "srmount error"
+errorCodeToStr ECOMM = "Communication error on send"
+errorCodeToStr EPROTO = "Protocol error"
+errorCodeToStr EMULTIHOP = "multihop attempted"
+errorCodeToStr EDOTDOT = "Cross mount point (not an error)"
+errorCodeToStr EREMCHG = "Remote address changed"
+
+-- POSIX
+errorCodeToStr ENOSYS = "function not implemented"
+
+unpackCErrorCode :: Int -> CErrorCode
+unpackCErrorCode e = (range (NOERROR, ENOSYS))!!e
+
+packCErrorCode :: CErrorCode -> Int
+packCErrorCode e = index (NOERROR, ENOSYS) e
+
+
+getCErrorCode :: PrimIO CErrorCode
+getCErrorCode =
+ _casm_ ``%r = errno;'' `thenPrimIO` \ errno ->
+ returnPrimIO (unpackCErrorCode errno)
+
+
+setCErrorCode :: CErrorCode -> PrimIO ()
+setCErrorCode ecode =
+ _casm_ ``errno = %0;'' (packCErrorCode ecode) `thenPrimIO` \ () ->
+ returnPrimIO ()
+
+
+\end{code}
+
diff --git a/ghc/lib/ghc/CError_mc.hi b/ghc/lib/ghc/CError_mc.hi
new file mode 100644
index 0000000000..e13f94bde2
--- /dev/null
+++ b/ghc/lib/ghc/CError_mc.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CError where
+data CErrorCode
+ = NOERROR | EPERM | ENOENT | ESRCH | EINTR | EIO | ENXIO | E2BIG | ENOEXEC | EBADF | ECHILD | EAGAIN | ENOMEM | EACCES | EFAULT | ENOTBLK | EBUSY | EEXIST | EXDEV | ENODEV | ENOTDIR | EISDIR | EINVAL | ENFILE | EMFILE | ENOTTY | ETXTBSY | EFBIG | ENOSPC | ESPIPE | EROFS | EMLINK | EPIPE | EDOM | ERANGE | EWOULDBLOCK | EINPROGRESS | EALREADY | ENOTSOCK | EDESTADDRREQ | EMSGSIZE | EPROTOTYPE | ENOPROTOOPT | EPROTONOSUPPOR | ESOCKTNOSUPPORT | EOPNOTSUPP | EPFNOSUPPORT | EAFNOSUPPORT | EADDRINUSE | EADDRNOTAVAIL | ENETDOWN | ENETUNREACH | ENETRESET | ECONNABORTED | ECONNRESET | ENOBUFS | EISCONN | ENOTCONN | ESHUTDOWN | ETOOMANYREFS | ETIMEDOUT | ECONNREFUSED | ELOOP | ENAMETOOLONG | EHOSTDOWN | EHOSTUNREACH | ENOTEMPTY | EPROCLIM | EUSERS | EDQUOT | ESTALE | EREMOTE | ENOSTR | ETIME | ENOSR | ENOMSG | EBADMSG | EIDRM | EDEADLK | ENOLCK | ENONET | ERREMOTE | ENOLINK | EADV | ESRMNT | ECOMM | EPROTO | EMULTIHOP | EDOTDOT | EREMCHG | ENOSYS
+errorCodeToStr :: CErrorCode -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
+getCErrorCode :: _State _RealWorld -> (CErrorCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCErrorCode :: CErrorCode -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "EU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool)] [_CONSTM_ Eq (==) (CErrorCode), _CONSTM_ Eq (/=) (CErrorCode)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord CErrorCode}}, ((CErrorCode, CErrorCode) -> [CErrorCode]), ((CErrorCode, CErrorCode) -> CErrorCode -> Int), ((CErrorCode, CErrorCode) -> CErrorCode -> Bool)] [_DFUN_ Ord (CErrorCode), _CONSTM_ Ix range (CErrorCode), _CONSTM_ Ix index (CErrorCode), _CONSTM_ Ix inRange (CErrorCode)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq CErrorCode}}, (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> _CMP_TAG)] [_DFUN_ Eq (CErrorCode), _CONSTM_ Ord (<) (CErrorCode), _CONSTM_ Ord (<=) (CErrorCode), _CONSTM_ Ord (>=) (CErrorCode), _CONSTM_ Ord (>) (CErrorCode), _CONSTM_ Ord max (CErrorCode), _CONSTM_ Ord min (CErrorCode), _CONSTM_ Ord _tagCmp (CErrorCode)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(CErrorCode, [Char])]), (Int -> CErrorCode -> [Char] -> [Char]), ([Char] -> [([CErrorCode], [Char])]), ([CErrorCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (CErrorCode), _CONSTM_ Text showsPrec (CErrorCode), _CONSTM_ Text readList (CErrorCode), _CONSTM_ Text showList (CErrorCode)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(CErrorCode, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/CError_mg.hi b/ghc/lib/ghc/CError_mg.hi
new file mode 100644
index 0000000000..e13f94bde2
--- /dev/null
+++ b/ghc/lib/ghc/CError_mg.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CError where
+data CErrorCode
+ = NOERROR | EPERM | ENOENT | ESRCH | EINTR | EIO | ENXIO | E2BIG | ENOEXEC | EBADF | ECHILD | EAGAIN | ENOMEM | EACCES | EFAULT | ENOTBLK | EBUSY | EEXIST | EXDEV | ENODEV | ENOTDIR | EISDIR | EINVAL | ENFILE | EMFILE | ENOTTY | ETXTBSY | EFBIG | ENOSPC | ESPIPE | EROFS | EMLINK | EPIPE | EDOM | ERANGE | EWOULDBLOCK | EINPROGRESS | EALREADY | ENOTSOCK | EDESTADDRREQ | EMSGSIZE | EPROTOTYPE | ENOPROTOOPT | EPROTONOSUPPOR | ESOCKTNOSUPPORT | EOPNOTSUPP | EPFNOSUPPORT | EAFNOSUPPORT | EADDRINUSE | EADDRNOTAVAIL | ENETDOWN | ENETUNREACH | ENETRESET | ECONNABORTED | ECONNRESET | ENOBUFS | EISCONN | ENOTCONN | ESHUTDOWN | ETOOMANYREFS | ETIMEDOUT | ECONNREFUSED | ELOOP | ENAMETOOLONG | EHOSTDOWN | EHOSTUNREACH | ENOTEMPTY | EPROCLIM | EUSERS | EDQUOT | ESTALE | EREMOTE | ENOSTR | ETIME | ENOSR | ENOMSG | EBADMSG | EIDRM | EDEADLK | ENOLCK | ENONET | ERREMOTE | ENOLINK | EADV | ESRMNT | ECOMM | EPROTO | EMULTIHOP | EDOTDOT | EREMCHG | ENOSYS
+errorCodeToStr :: CErrorCode -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
+getCErrorCode :: _State _RealWorld -> (CErrorCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCErrorCode :: CErrorCode -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "EU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool)] [_CONSTM_ Eq (==) (CErrorCode), _CONSTM_ Eq (/=) (CErrorCode)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord CErrorCode}}, ((CErrorCode, CErrorCode) -> [CErrorCode]), ((CErrorCode, CErrorCode) -> CErrorCode -> Int), ((CErrorCode, CErrorCode) -> CErrorCode -> Bool)] [_DFUN_ Ord (CErrorCode), _CONSTM_ Ix range (CErrorCode), _CONSTM_ Ix index (CErrorCode), _CONSTM_ Ix inRange (CErrorCode)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq CErrorCode}}, (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> _CMP_TAG)] [_DFUN_ Eq (CErrorCode), _CONSTM_ Ord (<) (CErrorCode), _CONSTM_ Ord (<=) (CErrorCode), _CONSTM_ Ord (>=) (CErrorCode), _CONSTM_ Ord (>) (CErrorCode), _CONSTM_ Ord max (CErrorCode), _CONSTM_ Ord min (CErrorCode), _CONSTM_ Ord _tagCmp (CErrorCode)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(CErrorCode, [Char])]), (Int -> CErrorCode -> [Char] -> [Char]), ([Char] -> [([CErrorCode], [Char])]), ([CErrorCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (CErrorCode), _CONSTM_ Text showsPrec (CErrorCode), _CONSTM_ Text readList (CErrorCode), _CONSTM_ Text showList (CErrorCode)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(CErrorCode, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/CError_mp.hi b/ghc/lib/ghc/CError_mp.hi
new file mode 100644
index 0000000000..e13f94bde2
--- /dev/null
+++ b/ghc/lib/ghc/CError_mp.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CError where
+data CErrorCode
+ = NOERROR | EPERM | ENOENT | ESRCH | EINTR | EIO | ENXIO | E2BIG | ENOEXEC | EBADF | ECHILD | EAGAIN | ENOMEM | EACCES | EFAULT | ENOTBLK | EBUSY | EEXIST | EXDEV | ENODEV | ENOTDIR | EISDIR | EINVAL | ENFILE | EMFILE | ENOTTY | ETXTBSY | EFBIG | ENOSPC | ESPIPE | EROFS | EMLINK | EPIPE | EDOM | ERANGE | EWOULDBLOCK | EINPROGRESS | EALREADY | ENOTSOCK | EDESTADDRREQ | EMSGSIZE | EPROTOTYPE | ENOPROTOOPT | EPROTONOSUPPOR | ESOCKTNOSUPPORT | EOPNOTSUPP | EPFNOSUPPORT | EAFNOSUPPORT | EADDRINUSE | EADDRNOTAVAIL | ENETDOWN | ENETUNREACH | ENETRESET | ECONNABORTED | ECONNRESET | ENOBUFS | EISCONN | ENOTCONN | ESHUTDOWN | ETOOMANYREFS | ETIMEDOUT | ECONNREFUSED | ELOOP | ENAMETOOLONG | EHOSTDOWN | EHOSTUNREACH | ENOTEMPTY | EPROCLIM | EUSERS | EDQUOT | ESTALE | EREMOTE | ENOSTR | ETIME | ENOSR | ENOMSG | EBADMSG | EIDRM | EDEADLK | ENOLCK | ENONET | ERREMOTE | ENOLINK | EADV | ESRMNT | ECOMM | EPROTO | EMULTIHOP | EDOTDOT | EREMCHG | ENOSYS
+errorCodeToStr :: CErrorCode -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
+getCErrorCode :: _State _RealWorld -> (CErrorCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCErrorCode :: CErrorCode -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "EU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool)] [_CONSTM_ Eq (==) (CErrorCode), _CONSTM_ Eq (/=) (CErrorCode)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord CErrorCode}}, ((CErrorCode, CErrorCode) -> [CErrorCode]), ((CErrorCode, CErrorCode) -> CErrorCode -> Int), ((CErrorCode, CErrorCode) -> CErrorCode -> Bool)] [_DFUN_ Ord (CErrorCode), _CONSTM_ Ix range (CErrorCode), _CONSTM_ Ix index (CErrorCode), _CONSTM_ Ix inRange (CErrorCode)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq CErrorCode}}, (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> _CMP_TAG)] [_DFUN_ Eq (CErrorCode), _CONSTM_ Ord (<) (CErrorCode), _CONSTM_ Ord (<=) (CErrorCode), _CONSTM_ Ord (>=) (CErrorCode), _CONSTM_ Ord (>) (CErrorCode), _CONSTM_ Ord max (CErrorCode), _CONSTM_ Ord min (CErrorCode), _CONSTM_ Ord _tagCmp (CErrorCode)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(CErrorCode, [Char])]), (Int -> CErrorCode -> [Char] -> [Char]), ([Char] -> [([CErrorCode], [Char])]), ([CErrorCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (CErrorCode), _CONSTM_ Text showsPrec (CErrorCode), _CONSTM_ Text readList (CErrorCode), _CONSTM_ Text showList (CErrorCode)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(CErrorCode, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/CError_p.hi b/ghc/lib/ghc/CError_p.hi
new file mode 100644
index 0000000000..e13f94bde2
--- /dev/null
+++ b/ghc/lib/ghc/CError_p.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CError where
+data CErrorCode
+ = NOERROR | EPERM | ENOENT | ESRCH | EINTR | EIO | ENXIO | E2BIG | ENOEXEC | EBADF | ECHILD | EAGAIN | ENOMEM | EACCES | EFAULT | ENOTBLK | EBUSY | EEXIST | EXDEV | ENODEV | ENOTDIR | EISDIR | EINVAL | ENFILE | EMFILE | ENOTTY | ETXTBSY | EFBIG | ENOSPC | ESPIPE | EROFS | EMLINK | EPIPE | EDOM | ERANGE | EWOULDBLOCK | EINPROGRESS | EALREADY | ENOTSOCK | EDESTADDRREQ | EMSGSIZE | EPROTOTYPE | ENOPROTOOPT | EPROTONOSUPPOR | ESOCKTNOSUPPORT | EOPNOTSUPP | EPFNOSUPPORT | EAFNOSUPPORT | EADDRINUSE | EADDRNOTAVAIL | ENETDOWN | ENETUNREACH | ENETRESET | ECONNABORTED | ECONNRESET | ENOBUFS | EISCONN | ENOTCONN | ESHUTDOWN | ETOOMANYREFS | ETIMEDOUT | ECONNREFUSED | ELOOP | ENAMETOOLONG | EHOSTDOWN | EHOSTUNREACH | ENOTEMPTY | EPROCLIM | EUSERS | EDQUOT | ESTALE | EREMOTE | ENOSTR | ETIME | ENOSR | ENOMSG | EBADMSG | EIDRM | EDEADLK | ENOLCK | ENONET | ERREMOTE | ENOLINK | EADV | ESRMNT | ECOMM | EPROTO | EMULTIHOP | EDOTDOT | EREMCHG | ENOSYS
+errorCodeToStr :: CErrorCode -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
+getCErrorCode :: _State _RealWorld -> (CErrorCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCErrorCode :: CErrorCode -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "EU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool)] [_CONSTM_ Eq (==) (CErrorCode), _CONSTM_ Eq (/=) (CErrorCode)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord CErrorCode}}, ((CErrorCode, CErrorCode) -> [CErrorCode]), ((CErrorCode, CErrorCode) -> CErrorCode -> Int), ((CErrorCode, CErrorCode) -> CErrorCode -> Bool)] [_DFUN_ Ord (CErrorCode), _CONSTM_ Ix range (CErrorCode), _CONSTM_ Ix index (CErrorCode), _CONSTM_ Ix inRange (CErrorCode)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq CErrorCode}}, (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> _CMP_TAG)] [_DFUN_ Eq (CErrorCode), _CONSTM_ Ord (<) (CErrorCode), _CONSTM_ Ord (<=) (CErrorCode), _CONSTM_ Ord (>=) (CErrorCode), _CONSTM_ Ord (>) (CErrorCode), _CONSTM_ Ord max (CErrorCode), _CONSTM_ Ord min (CErrorCode), _CONSTM_ Ord _tagCmp (CErrorCode)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(CErrorCode, [Char])]), (Int -> CErrorCode -> [Char] -> [Char]), ([Char] -> [([CErrorCode], [Char])]), ([CErrorCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (CErrorCode), _CONSTM_ Text showsPrec (CErrorCode), _CONSTM_ Text readList (CErrorCode), _CONSTM_ Text showList (CErrorCode)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(CErrorCode, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/CError_t.hi b/ghc/lib/ghc/CError_t.hi
new file mode 100644
index 0000000000..e13f94bde2
--- /dev/null
+++ b/ghc/lib/ghc/CError_t.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CError where
+data CErrorCode
+ = NOERROR | EPERM | ENOENT | ESRCH | EINTR | EIO | ENXIO | E2BIG | ENOEXEC | EBADF | ECHILD | EAGAIN | ENOMEM | EACCES | EFAULT | ENOTBLK | EBUSY | EEXIST | EXDEV | ENODEV | ENOTDIR | EISDIR | EINVAL | ENFILE | EMFILE | ENOTTY | ETXTBSY | EFBIG | ENOSPC | ESPIPE | EROFS | EMLINK | EPIPE | EDOM | ERANGE | EWOULDBLOCK | EINPROGRESS | EALREADY | ENOTSOCK | EDESTADDRREQ | EMSGSIZE | EPROTOTYPE | ENOPROTOOPT | EPROTONOSUPPOR | ESOCKTNOSUPPORT | EOPNOTSUPP | EPFNOSUPPORT | EAFNOSUPPORT | EADDRINUSE | EADDRNOTAVAIL | ENETDOWN | ENETUNREACH | ENETRESET | ECONNABORTED | ECONNRESET | ENOBUFS | EISCONN | ENOTCONN | ESHUTDOWN | ETOOMANYREFS | ETIMEDOUT | ECONNREFUSED | ELOOP | ENAMETOOLONG | EHOSTDOWN | EHOSTUNREACH | ENOTEMPTY | EPROCLIM | EUSERS | EDQUOT | ESTALE | EREMOTE | ENOSTR | ETIME | ENOSR | ENOMSG | EBADMSG | EIDRM | EDEADLK | ENOLCK | ENONET | ERREMOTE | ENOLINK | EADV | ESRMNT | ECOMM | EPROTO | EMULTIHOP | EDOTDOT | EREMCHG | ENOSYS
+errorCodeToStr :: CErrorCode -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
+getCErrorCode :: _State _RealWorld -> (CErrorCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCErrorCode :: CErrorCode -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "EU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool)] [_CONSTM_ Eq (==) (CErrorCode), _CONSTM_ Eq (/=) (CErrorCode)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord CErrorCode}}, ((CErrorCode, CErrorCode) -> [CErrorCode]), ((CErrorCode, CErrorCode) -> CErrorCode -> Int), ((CErrorCode, CErrorCode) -> CErrorCode -> Bool)] [_DFUN_ Ord (CErrorCode), _CONSTM_ Ix range (CErrorCode), _CONSTM_ Ix index (CErrorCode), _CONSTM_ Ix inRange (CErrorCode)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq CErrorCode}}, (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> Bool), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> CErrorCode), (CErrorCode -> CErrorCode -> _CMP_TAG)] [_DFUN_ Eq (CErrorCode), _CONSTM_ Ord (<) (CErrorCode), _CONSTM_ Ord (<=) (CErrorCode), _CONSTM_ Ord (>=) (CErrorCode), _CONSTM_ Ord (>) (CErrorCode), _CONSTM_ Ord max (CErrorCode), _CONSTM_ Ord min (CErrorCode), _CONSTM_ Ord _tagCmp (CErrorCode)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text CErrorCode
+ {-# GHC_PRAGMA _M_ CError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(CErrorCode, [Char])]), (Int -> CErrorCode -> [Char] -> [Char]), ([Char] -> [([CErrorCode], [Char])]), ([CErrorCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (CErrorCode), _CONSTM_ Text showsPrec (CErrorCode), _CONSTM_ Text readList (CErrorCode), _CONSTM_ Text showList (CErrorCode)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(CErrorCode, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq.hi b/ghc/lib/ghc/CharSeq.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq.lhs b/ghc/lib/ghc/CharSeq.lhs
new file mode 100644
index 0000000000..d5520272fc
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq.lhs
@@ -0,0 +1,282 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+%
+\section[CharSeq]{Characters sequences: the @CSeq@ type}
+
+\begin{code}
+#if defined(COMPILING_GHC)
+# include "HsVersions.h"
+#else
+# define FAST_STRING String
+# define FAST_INT Int
+# define ILIT(x) (x)
+# define IBOX(x) (x)
+# define _GE_ >=
+# define _ADD_ +
+# define _SUB_ -
+# define FAST_BOOL Bool
+# define _TRUE_ True
+# define _FALSE_ False
+#endif
+
+module CharSeq (
+ CSeq,
+ cNil, cAppend, cIndent, cNL, cStr, cPStr, cCh, cInt,
+#if ! defined(COMPILING_GHC)
+ cLength,
+ cShows,
+#endif
+ cShow
+
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+ , cAppendFile
+ ) where
+
+#if __GLASGOW_HASKELL__ < 26
+import PreludePrimIO
+#endif
+import PreludeGlaST
+
+#else
+ ) where
+#endif
+\end{code}
+
+%************************************************
+%* *
+ \subsection{The interface}
+%* *
+%************************************************
+
+\begin{code}
+cShow :: CSeq -> [Char]
+
+#if ! defined(COMPILING_GHC)
+-- not used in GHC
+cShows :: CSeq -> ShowS
+cLength :: CSeq -> Int
+#endif
+
+cNil :: CSeq
+cAppend :: CSeq -> CSeq -> CSeq
+cIndent :: Int -> CSeq -> CSeq
+cNL :: CSeq
+cStr :: [Char] -> CSeq
+cPStr :: FAST_STRING -> CSeq
+cCh :: Char -> CSeq
+cInt :: Int -> CSeq
+
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+
+# if __GLASGOW_HASKELL__ < 23
+# define _FILE _Addr
+# endif
+
+cAppendFile :: _FILE -> CSeq -> PrimIO ()
+#endif
+\end{code}
+
+%************************************************
+%* *
+ \subsection{The representation}
+%* *
+%************************************************
+
+\begin{code}
+data CSeq
+ = CNil
+ | CAppend CSeq CSeq
+ | CIndent Int CSeq
+ | CNewline -- Move to start of next line, unless we're
+ -- already at the start of a line.
+ | CStr [Char]
+ | CCh Char
+ | CInt Int -- equiv to "CStr (show the_int)"
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 23
+ | CPStr _PackedString
+#endif
+\end{code}
+
+The construction functions do pattern matching, to ensure that
+redundant CNils are eliminated. This is bound to have some effect on
+evaluation order, but quite what I don't know.
+
+\begin{code}
+cNil = CNil
+\end{code}
+
+The following special cases were eating our lunch! They make the whole
+thing too strict. A classic strictness bug!
+\begin{code}
+-- cAppend CNil cs2 = cs2
+-- cAppend cs1 CNil = cs1
+
+cAppend cs1 cs2 = CAppend cs1 cs2
+
+cIndent n cs = CIndent n cs
+
+cNL = CNewline
+cStr = CStr
+cCh = CCh
+cInt = CInt
+
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 23
+cPStr = CPStr
+#else
+cPStr = CStr
+#endif
+
+cShow seq = flatten ILIT(0) _TRUE_ seq []
+
+#if ! defined(COMPILING_GHC)
+cShows seq rest = cShow seq ++ rest
+cLength seq = length (cShow seq) -- *not* the best way to do this!
+#endif
+
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+cAppendFile file_star seq
+ = flattenIO file_star seq
+#endif
+\end{code}
+
+This code is {\em hammered}. We are not above doing sleazy
+non-standard things. (WDP 94/10)
+
+\begin{code}
+data WorkItem = WI FAST_INT CSeq -- indentation, and sequence
+
+flatten :: FAST_INT -- Indentation
+ -> FAST_BOOL -- True => just had a newline
+ -> CSeq -- Current seq to flatten
+ -> [WorkItem] -- Work list with indentation
+ -> String
+
+flatten n nlp CNil seqs = flattenS nlp seqs
+
+flatten n nlp (CAppend seq1 seq2) seqs = flatten n nlp seq1 ((WI n seq2) : seqs)
+flatten n nlp (CIndent IBOX(n2) seq) seqs = flatten (n2 _ADD_ n) nlp seq seqs
+
+flatten n _FALSE_ CNewline seqs = '\n' : flattenS _TRUE_ seqs
+flatten n _TRUE_ CNewline seqs = flattenS _TRUE_ seqs -- Already at start of line
+
+flatten n _FALSE_ (CStr s) seqs = s ++ flattenS _FALSE_ seqs
+flatten n _FALSE_ (CCh c) seqs = c : flattenS _FALSE_ seqs
+flatten n _FALSE_ (CInt i) seqs = show i ++ flattenS _FALSE_ seqs
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 23
+flatten n _FALSE_ (CPStr s) seqs = _unpackPS s ++ flattenS _FALSE_ seqs
+#endif
+
+flatten n _TRUE_ (CStr s) seqs = mkIndent n (s ++ flattenS _FALSE_ seqs)
+flatten n _TRUE_ (CCh c) seqs = mkIndent n (c : flattenS _FALSE_ seqs)
+flatten n _TRUE_ (CInt i) seqs = mkIndent n (show i ++ flattenS _FALSE_ seqs)
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 23
+flatten n _TRUE_ (CPStr s) seqs = mkIndent n (_unpackPS s ++ flattenS _FALSE_ seqs)
+#endif
+\end{code}
+
+\begin{code}
+flattenS :: FAST_BOOL -> [WorkItem] -> String
+flattenS nlp [] = ""
+flattenS nlp ((WI col seq):seqs) = flatten col nlp seq seqs
+\end{code}
+
+\begin{code}
+mkIndent :: FAST_INT -> String -> String
+mkIndent ILIT(0) s = s
+mkIndent n s
+ = if (n _GE_ ILIT(8))
+ then '\t' : mkIndent (n _SUB_ ILIT(8)) s
+ else ' ' : mkIndent (n _SUB_ ILIT(1)) s
+ -- Hmm.. a little Unix-y.
+\end{code}
+
+Now the I/O version.
+This code is massively {\em hammered}.
+It {\em ignores} indentation.
+
+\begin{code}
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+
+flattenIO :: _FILE -- file we are writing to
+ -> CSeq -- Seq to print
+ -> PrimIO ()
+
+flattenIO file sq
+# if __GLASGOW_HASKELL__ >= 23
+ | file == ``NULL'' = error "panic:flattenIO" -- really just to force eval :-)
+ | otherwise
+# endif
+ = flat sq
+ where
+ flat CNil = BSCC("flatCNil") returnPrimIO () ESCC
+
+ flat (CIndent n2 seq) = BSCC("flatCIndent") flat seq ESCC
+
+ flat (CAppend seq1 seq2)
+ = BSCC("flatCAppend")
+ flat seq1 `seqPrimIO` flat seq2
+ ESCC
+
+ flat CNewline = BSCC("flatCNL") _ccall_ stg_putc '\n' file ESCC
+
+ flat (CCh c) = BSCC("flatCCh") _ccall_ stg_putc c file ESCC
+
+ flat (CInt i) = BSCC("flatCInt") _ccall_ fprintf file percent_d i ESCC
+
+ flat (CStr s) = BSCC("flatCStr") put_str s ESCC
+
+# if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 23
+ flat (CPStr s) = BSCC("flatCPStr") put_pstr s ESCC
+# endif
+
+ -----
+ put_str, put_str2 :: String -> PrimIO ()
+
+ put_str str
+ = --put_str2 ``stderr'' (str ++ "\n") `seqPrimIO`
+ put_str2 str
+
+ put_str2 [] = BSCC("putNil") returnPrimIO () ESCC
+
+ put_str2 (c1@(C# _) : c2@(C# _) : c3@(C# _) : c4@(C# _) : cs)
+ = BSCC("put4")
+ _ccall_ stg_putc c1 file `seqPrimIO`
+ _ccall_ stg_putc c2 file `seqPrimIO`
+ _ccall_ stg_putc c3 file `seqPrimIO`
+ _ccall_ stg_putc c4 file `seqPrimIO`
+ put_str2 cs -- efficiency hack? who knows... (WDP 94/10)
+ ESCC
+
+ put_str2 (c1@(C# _) : c2@(C# _) : c3@(C# _) : cs)
+ = BSCC("put3")
+ _ccall_ stg_putc c1 file `seqPrimIO`
+ _ccall_ stg_putc c2 file `seqPrimIO`
+ _ccall_ stg_putc c3 file `seqPrimIO`
+ put_str2 cs -- efficiency hack? who knows... (WDP 94/10)
+ ESCC
+
+ put_str2 (c1@(C# _) : c2@(C# _) : cs)
+ = BSCC("put2")
+ _ccall_ stg_putc c1 file `seqPrimIO`
+ _ccall_ stg_putc c2 file `seqPrimIO`
+ put_str2 cs -- efficiency hack? who knows... (WDP 94/10)
+ ESCC
+
+ put_str2 (c1@(C# _) : cs)
+ = BSCC("put1")
+ _ccall_ stg_putc c1 file `seqPrimIO`
+ put_str2 cs -- efficiency hack? who knows... (WDP 94/10)
+ ESCC
+
+# if __GLASGOW_HASKELL__ >= 23
+ put_pstr ps = _putPS file ps
+# endif
+
+# if __GLASGOW_HASKELL__ >= 23
+percent_d = _psToByteArray SLIT("%d")
+# else
+percent_d = "%d"
+# endif
+
+#endif {- __GLASGOW_HASKELL__ >= 22 -}
+\end{code}
diff --git a/ghc/lib/ghc/CharSeq_mc.hi b/ghc/lib/ghc/CharSeq_mc.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_mc.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq_mg.hi b/ghc/lib/ghc/CharSeq_mg.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_mg.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq_mp.hi b/ghc/lib/ghc/CharSeq_mp.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_mp.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq_mr.hi b/ghc/lib/ghc/CharSeq_mr.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_mr.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq_mt.hi b/ghc/lib/ghc/CharSeq_mt.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_mt.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq_p.hi b/ghc/lib/ghc/CharSeq_p.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_p.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/CharSeq_t.hi b/ghc/lib/ghc/CharSeq_t.hi
new file mode 100644
index 0000000000..a70b1430fe
--- /dev/null
+++ b/ghc/lib/ghc/CharSeq_t.hi
@@ -0,0 +1,26 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface CharSeq where
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+cAppend :: CSeq -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: CSeq) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CAppend [] [u0, u1] _N_ #-}
+cCh :: Char -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char) -> _!_ _ORIG_ CharSeq CCh [] [u0] _N_ #-}
+cIndent :: Int -> CSeq -> CSeq
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: CSeq) -> _!_ _ORIG_ CharSeq CIndent [] [u0, u1] _N_ #-}
+cInt :: Int -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int) -> _!_ _ORIG_ CharSeq CInt [] [u0] _N_ #-}
+cLength :: CSeq -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cNL :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNewline [] [] _N_ #-}
+cNil :: CSeq
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _ORIG_ CharSeq CNil [] [] _N_ #-}
+cPStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+cShow :: CSeq -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+cShows :: CSeq -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+cStr :: [Char] -> CSeq
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: [Char]) -> _!_ _ORIG_ CharSeq CStr [] [u0] _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap.hi b/ghc/lib/ghc/FiniteMap.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap.lhs b/ghc/lib/ghc/FiniteMap.lhs
new file mode 100644
index 0000000000..03f087a1fe
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap.lhs
@@ -0,0 +1,851 @@
+%
+% (c) The AQUA Project, Glasgow University, 1994-1995
+%
+\section[FiniteMap]{An implementation of finite maps}
+
+``Finite maps'' are the heart of the compiler's
+lookup-tables/environments and its implementation of sets. Important
+stuff!
+
+This code is derived from that in the paper:
+\begin{display}
+ S Adams
+ "Efficient sets: a balancing act"
+ Journal of functional programming 3(4) Oct 1993, pp553-562
+\end{display}
+
+The code is SPECIALIZEd to various highly-desirable types (e.g., Id)
+near the end (only \tr{#ifdef COMPILING_GHC}).
+
+\begin{code}
+#if defined(COMPILING_GHC)
+#include "HsVersions.h"
+#define IF_NOT_GHC(a) {--}
+#else
+#define ASSERT(e) {--}
+#define IF_NOT_GHC(a) a
+#define COMMA ,
+#endif
+
+#if defined(COMPILING_GHC) && defined(DEBUG_FINITEMAPS)/* NB NB NB */
+#define OUTPUTABLE_key , Outputable key
+#else
+#define OUTPUTABLE_key {--}
+#endif
+
+module FiniteMap (
+ FiniteMap, -- abstract type
+
+ emptyFM, singletonFM, listToFM,
+
+ addToFM, addListToFM,
+ IF_NOT_GHC(addToFM_C COMMA)
+ addListToFM_C,
+ IF_NOT_GHC(delFromFM COMMA)
+ delListFromFM,
+
+ plusFM, plusFM_C,
+ IF_NOT_GHC(intersectFM COMMA intersectFM_C COMMA)
+ minusFM, -- exported for GHCI only
+
+ IF_NOT_GHC(mapFM COMMA foldFM COMMA filterFM COMMA)
+
+ IF_NOT_GHC(sizeFM COMMA)
+ isEmptyFM, elemFM, lookupFM, lookupWithDefaultFM,
+
+ fmToList, keysFM, eltsFM{-used in GHCI-}
+
+#if defined(COMPILING_GHC)
+ , FiniteSet(..), emptySet, mkSet, isEmptySet
+ , elementOf, setToList, union, minusSet{-exported for GHCI-}
+#endif
+
+ -- To make it self-sufficient
+#if __HASKELL1__ < 3
+ , Maybe
+#endif
+ ) where
+
+import Maybes
+
+#if defined(COMPILING_GHC)
+import AbsUniType
+import Pretty
+import Outputable
+import Util
+import CLabelInfo ( CLabel ) -- for specialising
+#if ! OMIT_NATIVE_CODEGEN
+import AsmRegAlloc ( Reg ) -- ditto
+#define IF_NCG(a) a
+#else
+#define IF_NCG(a) {--}
+#endif
+#endif
+
+-- SIGH: but we use unboxed "sizes"...
+#if __GLASGOW_HASKELL__
+#define IF_GHC(a,b) a
+#else /* not GHC */
+#define IF_GHC(a,b) b
+#endif /* not GHC */
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection{The signature of the module}
+%* *
+%************************************************************************
+
+\begin{code}
+-- BUILDING
+emptyFM :: FiniteMap key elt
+singletonFM :: key -> elt -> FiniteMap key elt
+listToFM :: (Ord key OUTPUTABLE_key) => [(key,elt)] -> FiniteMap key elt
+ -- In the case of duplicates, the last is taken
+
+-- ADDING AND DELETING
+ -- Throws away any previous binding
+ -- In the list case, the items are added starting with the
+ -- first one in the list
+addToFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> key -> elt -> FiniteMap key elt
+addListToFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> [(key,elt)] -> FiniteMap key elt
+
+ -- Combines with previous binding
+addToFM_C :: (Ord key OUTPUTABLE_key) => (elt -> elt -> elt)
+ -> FiniteMap key elt -> key -> elt
+ -> FiniteMap key elt
+addListToFM_C :: (Ord key OUTPUTABLE_key) => (elt -> elt -> elt)
+ -> FiniteMap key elt -> [(key,elt)]
+ -> FiniteMap key elt
+
+ -- Deletion doesn't complain if you try to delete something
+ -- which isn't there
+delFromFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> key -> FiniteMap key elt
+delListFromFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> [key] -> FiniteMap key elt
+
+-- COMBINING
+ -- Bindings in right argument shadow those in the left
+plusFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> FiniteMap key elt
+ -> FiniteMap key elt
+
+ -- Combines bindings for the same thing with the given function
+plusFM_C :: (Ord key OUTPUTABLE_key) => (elt -> elt -> elt)
+ -> FiniteMap key elt -> FiniteMap key elt -> FiniteMap key elt
+
+minusFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> FiniteMap key elt -> FiniteMap key elt
+ -- (minusFM a1 a2) deletes from a1 any bindings which are bound in a2
+
+intersectFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> FiniteMap key elt -> FiniteMap key elt
+intersectFM_C :: (Ord key OUTPUTABLE_key) => (elt -> elt -> elt)
+ -> FiniteMap key elt -> FiniteMap key elt -> FiniteMap key elt
+
+-- MAPPING, FOLDING, FILTERING
+foldFM :: (key -> elt -> a -> a) -> a -> FiniteMap key elt -> a
+mapFM :: (key -> elt1 -> elt2) -> FiniteMap key elt1 -> FiniteMap key elt2
+filterFM :: (Ord key OUTPUTABLE_key) => (key -> elt -> Bool)
+ -> FiniteMap key elt -> FiniteMap key elt
+
+-- INTERROGATING
+sizeFM :: FiniteMap key elt -> Int
+isEmptyFM :: FiniteMap key elt -> Bool
+
+elemFM :: (Ord key OUTPUTABLE_key) => key -> FiniteMap key elt -> Bool
+lookupFM :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> key -> Maybe elt
+lookupWithDefaultFM
+ :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> elt -> key -> elt
+ -- lookupWithDefaultFM supplies a "default" elt
+ -- to return for an unmapped key
+
+-- LISTIFYING
+fmToList :: FiniteMap key elt -> [(key,elt)]
+keysFM :: FiniteMap key elt -> [key]
+eltsFM :: FiniteMap key elt -> [elt]
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{The @FiniteMap@ data type, and building of same}
+%* *
+%************************************************************************
+
+Invariants about @FiniteMap@:
+\begin{enumerate}
+\item
+all keys in a FiniteMap are distinct
+\item
+all keys in left subtree are $<$ key in Branch and
+all keys in right subtree are $>$ key in Branch
+\item
+size field of a Branch gives number of Branch nodes in the tree
+\item
+size of left subtree is differs from size of right subtree by a
+factor of at most \tr{sIZE_RATIO}
+\end{enumerate}
+
+\begin{code}
+data FiniteMap key elt
+ = EmptyFM
+ | Branch key elt -- Key and elt stored here
+ IF_GHC(Int#,Int{-STRICT-}) -- Size >= 1
+ (FiniteMap key elt) -- Children
+ (FiniteMap key elt)
+\end{code}
+
+\begin{code}
+emptyFM = EmptyFM
+{-
+emptyFM
+ = Branch bottom bottom IF_GHC(0#,0) bottom bottom
+ where
+ bottom = panic "emptyFM"
+-}
+
+-- #define EmptyFM (Branch _ _ IF_GHC(0#,0) _ _)
+
+singletonFM key elt = Branch key elt IF_GHC(1#,1) emptyFM emptyFM
+
+listToFM key_elt_pairs = addListToFM emptyFM key_elt_pairs
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Adding to and deleting from @FiniteMaps@}
+%* *
+%************************************************************************
+
+\begin{code}
+addToFM fm key elt = addToFM_C (\ old new -> new) fm key elt
+
+addToFM_C combiner EmptyFM key elt = singletonFM key elt
+addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt
+#ifdef __GLASGOW_HASKELL__
+ = case _tagCmp new_key key of
+ _LT -> mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
+ _GT -> mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
+ _EQ -> Branch new_key (combiner elt new_elt) size fm_l fm_r
+#else
+ | new_key < key = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
+ | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
+ | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r
+#endif
+
+addListToFM fm key_elt_pairs = addListToFM_C (\ old new -> new) fm key_elt_pairs
+
+addListToFM_C combiner fm key_elt_pairs
+ = foldl add fm key_elt_pairs -- foldl adds from the left
+ where
+ add fmap (key,elt) = addToFM_C combiner fmap key elt
+\end{code}
+
+\begin{code}
+delFromFM EmptyFM del_key = emptyFM
+delFromFM (Branch key elt size fm_l fm_r) del_key
+#ifdef __GLASGOW_HASKELL__
+ = case _tagCmp del_key key of
+ _GT -> mkBalBranch key elt fm_l (delFromFM fm_r del_key)
+ _LT -> mkBalBranch key elt (delFromFM fm_l del_key) fm_r
+ _EQ -> glueBal fm_l fm_r
+#else
+ | del_key > key
+ = mkBalBranch key elt fm_l (delFromFM fm_r del_key)
+
+ | del_key < key
+ = mkBalBranch key elt (delFromFM fm_l del_key) fm_r
+
+ | key == del_key
+ = glueBal fm_l fm_r
+#endif
+
+delListFromFM fm keys = foldl delFromFM fm keys
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Combining @FiniteMaps@}
+%* *
+%************************************************************************
+
+\begin{code}
+plusFM_C combiner EmptyFM fm2 = fm2
+plusFM_C combiner fm1 EmptyFM = fm1
+plusFM_C combiner fm1 (Branch split_key elt2 _ left right)
+ = mkVBalBranch split_key new_elt
+ (plusFM_C combiner lts left)
+ (plusFM_C combiner gts right)
+ where
+ lts = splitLT fm1 split_key
+ gts = splitGT fm1 split_key
+ new_elt = case lookupFM fm1 split_key of
+ Nothing -> elt2
+ Just elt1 -> combiner elt1 elt2
+
+-- It's worth doing plusFM specially, because we don't need
+-- to do the lookup in fm1.
+
+plusFM EmptyFM fm2 = fm2
+plusFM fm1 EmptyFM = fm1
+plusFM fm1 (Branch split_key elt1 _ left right)
+ = mkVBalBranch split_key elt1 (plusFM lts left) (plusFM gts right)
+ where
+ lts = splitLT fm1 split_key
+ gts = splitGT fm1 split_key
+
+minusFM EmptyFM fm2 = emptyFM
+minusFM fm1 EmptyFM = fm1
+minusFM fm1 (Branch split_key elt _ left right)
+ = glueVBal (minusFM lts left) (minusFM gts right)
+ -- The two can be way different, so we need glueVBal
+ where
+ lts = splitLT fm1 split_key -- NB gt and lt, so the equal ones
+ gts = splitGT fm1 split_key -- are not in either.
+
+intersectFM fm1 fm2 = intersectFM_C (\ left right -> right) fm1 fm2
+
+intersectFM_C combiner fm1 EmptyFM = emptyFM
+intersectFM_C combiner EmptyFM fm2 = emptyFM
+intersectFM_C combiner fm1 (Branch split_key elt2 _ left right)
+
+ | maybeToBool maybe_elt1 -- split_elt *is* in intersection
+ = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left)
+ (intersectFM_C combiner gts right)
+
+ | otherwise -- split_elt is *not* in intersection
+ = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
+
+ where
+ lts = splitLT fm1 split_key -- NB gt and lt, so the equal ones
+ gts = splitGT fm1 split_key -- are not in either.
+
+ maybe_elt1 = lookupFM fm1 split_key
+ Just elt1 = maybe_elt1
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Mapping, folding, and filtering with @FiniteMaps@}
+%* *
+%************************************************************************
+
+\begin{code}
+foldFM k z EmptyFM = z
+foldFM k z (Branch key elt _ fm_l fm_r)
+ = foldFM k (k key elt (foldFM k z fm_r)) fm_l
+
+mapFM f EmptyFM = emptyFM
+mapFM f (Branch key elt size fm_l fm_r)
+ = Branch key (f key elt) size (mapFM f fm_l) (mapFM f fm_r)
+
+filterFM p EmptyFM = emptyFM
+filterFM p (Branch key elt _ fm_l fm_r)
+ | p key elt -- Keep the item
+ = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r)
+
+ | otherwise -- Drop the item
+ = glueVBal (filterFM p fm_l) (filterFM p fm_r)
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Interrogating @FiniteMaps@}
+%* *
+%************************************************************************
+
+\begin{code}
+--{-# INLINE sizeFM #-}
+sizeFM EmptyFM = 0
+sizeFM (Branch _ _ size _ _) = IF_GHC(I# size, size)
+
+isEmptyFM fm = sizeFM fm == 0
+
+lookupFM EmptyFM key = Nothing
+lookupFM (Branch key elt _ fm_l fm_r) key_to_find
+#ifdef __GLASGOW_HASKELL__
+ = case _tagCmp key_to_find key of
+ _LT -> lookupFM fm_l key_to_find
+ _GT -> lookupFM fm_r key_to_find
+ _EQ -> Just elt
+#else
+ | key_to_find < key = lookupFM fm_l key_to_find
+ | key_to_find > key = lookupFM fm_r key_to_find
+ | otherwise = Just elt
+#endif
+
+key `elemFM` fm
+ = case (lookupFM fm key) of { Nothing -> False; Just elt -> True }
+
+lookupWithDefaultFM fm deflt key
+ = case (lookupFM fm key) of { Nothing -> deflt; Just elt -> elt }
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Listifying @FiniteMaps@}
+%* *
+%************************************************************************
+
+\begin{code}
+fmToList fm = foldFM (\ key elt rest -> (key,elt) : rest) [] fm
+keysFM fm = foldFM (\ key elt rest -> key : rest) [] fm
+eltsFM fm = foldFM (\ key elt rest -> elt : rest) [] fm
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection{The implementation of balancing}
+%* *
+%************************************************************************
+
+%************************************************************************
+%* *
+\subsubsection{Basic construction of a @FiniteMap@}
+%* *
+%************************************************************************
+
+@mkBranch@ simply gets the size component right. This is the ONLY
+(non-trivial) place the Branch object is built, so the ASSERTion
+recursively checks consistency. (The trivial use of Branch is in
+@singletonFM@.)
+
+\begin{code}
+sIZE_RATIO :: Int
+sIZE_RATIO = 5
+
+mkBranch :: (Ord key OUTPUTABLE_key) -- Used for the assertion checking only
+ => Int
+ -> key -> elt
+ -> FiniteMap key elt -> FiniteMap key elt
+ -> FiniteMap key elt
+
+mkBranch which key elt fm_l fm_r
+ = --ASSERT( left_ok && right_ok && balance_ok )
+#if defined(COMPILING_GHC) && defined(DEBUG_FINITEMAPS)
+ if not ( left_ok && right_ok && balance_ok ) then
+ pprPanic ("mkBranch:"++show which) (ppAboves [ppr PprDebug [left_ok, right_ok, balance_ok],
+ ppr PprDebug key,
+ ppr PprDebug fm_l,
+ ppr PprDebug fm_r])
+ else
+#endif
+ let
+ result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
+ in
+-- if sizeFM result <= 8 then
+ result
+-- else
+-- pprTrace ("mkBranch:"++(show which)) (ppr PprDebug result) (
+-- result
+-- )
+ where
+ left_ok = case fm_l of
+ EmptyFM -> True
+ Branch left_key _ _ _ _ -> let
+ biggest_left_key = fst (findMax fm_l)
+ in
+ biggest_left_key < key
+ right_ok = case fm_r of
+ EmptyFM -> True
+ Branch right_key _ _ _ _ -> let
+ smallest_right_key = fst (findMin fm_r)
+ in
+ key < smallest_right_key
+ balance_ok = True -- sigh
+{- LATER:
+ balance_ok
+ = -- Both subtrees have one or no elements...
+ (left_size + right_size <= 1)
+-- NO || left_size == 0 -- ???
+-- NO || right_size == 0 -- ???
+ -- ... or the number of elements in a subtree does not exceed
+ -- sIZE_RATIO times the number of elements in the other subtree
+ || (left_size * sIZE_RATIO >= right_size &&
+ right_size * sIZE_RATIO >= left_size)
+-}
+
+ left_size = sizeFM fm_l
+ right_size = sizeFM fm_r
+
+#ifdef __GLASGOW_HASKELL__
+ unbox :: Int -> Int#
+ unbox (I# size) = size
+#else
+ unbox :: Int -> Int
+ unbox x = x
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsubsection{{\em Balanced} construction of a @FiniteMap@}
+%* *
+%************************************************************************
+
+@mkBalBranch@ rebalances, assuming that the subtrees aren't too far
+out of whack.
+
+\begin{code}
+mkBalBranch :: (Ord key OUTPUTABLE_key)
+ => key -> elt
+ -> FiniteMap key elt -> FiniteMap key elt
+ -> FiniteMap key elt
+
+mkBalBranch key elt fm_L fm_R
+
+ | size_l + size_r < 2
+ = mkBranch 1{-which-} key elt fm_L fm_R
+
+ | size_r > sIZE_RATIO * size_l -- Right tree too big
+ = case fm_R of
+ Branch _ _ _ fm_rl fm_rr
+ | sizeFM fm_rl < 2 * sizeFM fm_rr -> single_L fm_L fm_R
+ | otherwise -> double_L fm_L fm_R
+ -- Other case impossible
+
+ | size_l > sIZE_RATIO * size_r -- Left tree too big
+ = case fm_L of
+ Branch _ _ _ fm_ll fm_lr
+ | sizeFM fm_lr < 2 * sizeFM fm_ll -> single_R fm_L fm_R
+ | otherwise -> double_R fm_L fm_R
+ -- Other case impossible
+
+ | otherwise -- No imbalance
+ = mkBranch 2{-which-} key elt fm_L fm_R
+
+ where
+ size_l = sizeFM fm_L
+ size_r = sizeFM fm_R
+
+ single_L fm_l (Branch key_r elt_r _ fm_rl fm_rr)
+ = mkBranch 3{-which-} key_r elt_r (mkBranch 4{-which-} key elt fm_l fm_rl) fm_rr
+
+ double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rr)
+ = mkBranch 5{-which-} key_rl elt_rl (mkBranch 6{-which-} key elt fm_l fm_rll)
+ (mkBranch 7{-which-} key_r elt_r fm_rlr fm_rr)
+
+ single_R (Branch key_l elt_l _ fm_ll fm_lr) fm_r
+ = mkBranch 8{-which-} key_l elt_l fm_ll (mkBranch 9{-which-} key elt fm_lr fm_r)
+
+ double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r
+ = mkBranch 10{-which-} key_lr elt_lr (mkBranch 11{-which-} key_l elt_l fm_ll fm_lrl)
+ (mkBranch 12{-which-} key elt fm_lrr fm_r)
+\end{code}
+
+
+\begin{code}
+mkVBalBranch :: (Ord key OUTPUTABLE_key)
+ => key -> elt
+ -> FiniteMap key elt -> FiniteMap key elt
+ -> FiniteMap key elt
+
+-- Assert: in any call to (mkVBalBranch_C comb key elt l r),
+-- (a) all keys in l are < all keys in r
+-- (b) all keys in l are < key
+-- (c) all keys in r are > key
+
+mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt
+mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt
+
+mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lr)
+ fm_r@(Branch key_r elt_r _ fm_rl fm_rr)
+ | sIZE_RATIO * size_l < size_r
+ = mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
+
+ | sIZE_RATIO * size_r < size_l
+ = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
+
+ | otherwise
+ = mkBranch 13{-which-} key elt fm_l fm_r
+
+ where
+ size_l = sizeFM fm_l
+ size_r = sizeFM fm_r
+\end{code}
+
+%************************************************************************
+%* *
+\subsubsection{Gluing two trees together}
+%* *
+%************************************************************************
+
+@glueBal@ assumes its two arguments aren't too far out of whack, just
+like @mkBalBranch@. But: all keys in first arg are $<$ all keys in
+second.
+
+\begin{code}
+glueBal :: (Ord key OUTPUTABLE_key)
+ => FiniteMap key elt -> FiniteMap key elt
+ -> FiniteMap key elt
+
+glueBal EmptyFM fm2 = fm2
+glueBal fm1 EmptyFM = fm1
+glueBal fm1 fm2
+ -- The case analysis here (absent in Adams' program) is really to deal
+ -- with the case where fm2 is a singleton. Then deleting the minimum means
+ -- we pass an empty tree to mkBalBranch, which breaks its invariant.
+ | sizeFM fm2 > sizeFM fm1
+ = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
+
+ | otherwise
+ = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2
+ where
+ (mid_key1, mid_elt1) = findMax fm1
+ (mid_key2, mid_elt2) = findMin fm2
+\end{code}
+
+@glueVBal@ copes with arguments which can be of any size.
+But: all keys in first arg are $<$ all keys in second.
+
+\begin{code}
+glueVBal :: (Ord key OUTPUTABLE_key)
+ => FiniteMap key elt -> FiniteMap key elt
+ -> FiniteMap key elt
+
+glueVBal EmptyFM fm2 = fm2
+glueVBal fm1 EmptyFM = fm1
+glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lr)
+ fm_r@(Branch key_r elt_r _ fm_rl fm_rr)
+ | sIZE_RATIO * size_l < size_r
+ = mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
+
+ | sIZE_RATIO * size_r < size_l
+ = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
+
+ | otherwise -- We now need the same two cases as in glueBal above.
+ = glueBal fm_l fm_r
+ where
+ (mid_key_l,mid_elt_l) = findMax fm_l
+ (mid_key_r,mid_elt_r) = findMin fm_r
+ size_l = sizeFM fm_l
+ size_r = sizeFM fm_r
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Local utilities}
+%* *
+%************************************************************************
+
+\begin{code}
+splitLT, splitGT :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> key -> FiniteMap key elt
+
+-- splitLT fm split_key = fm restricted to keys < split_key
+-- splitGE fm split_key = fm restricted to keys >= split_key (UNUSED)
+-- splitGT fm split_key = fm restricted to keys > split_key
+
+splitLT EmptyFM split_key = emptyFM
+splitLT (Branch key elt _ fm_l fm_r) split_key
+#ifdef __GLASGOW_HASKELL__
+ = case _tagCmp split_key key of
+ _LT -> splitLT fm_l split_key
+ _GT -> mkVBalBranch key elt fm_l (splitLT fm_r split_key)
+ _EQ -> fm_l
+#else
+ | split_key < key = splitLT fm_l split_key
+ | split_key > key = mkVBalBranch key elt fm_l (splitLT fm_r split_key)
+ | otherwise = fm_l
+#endif
+
+{- UNUSED:
+splitGE EmptyFM split_key = emptyFM
+splitGE (Branch key elt _ fm_l fm_r) split_key
+#ifdef __GLASGOW_HASKELL__
+ = case _tagCmp split_key key of
+ _GT -> splitGE fm_r split_key
+ _LT -> mkVBalBranch key elt (splitGE fm_l split_key) fm_r
+ _EQ -> mkVBalBranch key elt emptyFM fm_r
+#else
+ | split_key > key = splitGE fm_r split_key
+ | split_key < key = mkVBalBranch key elt (splitGE fm_l split_key) fm_r
+ | otherwise = mkVBalBranch key elt emptyFM fm_r
+#endif
+-}
+
+splitGT EmptyFM split_key = emptyFM
+splitGT (Branch key elt _ fm_l fm_r) split_key
+#ifdef __GLASGOW_HASKELL__
+ = case _tagCmp split_key key of
+ _GT -> splitGT fm_r split_key
+ _LT -> mkVBalBranch key elt (splitGT fm_l split_key) fm_r
+ _EQ -> fm_r
+#else
+ | split_key > key = splitGT fm_r split_key
+ | split_key < key = mkVBalBranch key elt (splitGT fm_l split_key) fm_r
+ | otherwise = fm_r
+#endif
+
+findMin :: FiniteMap key elt -> (key,elt)
+findMin (Branch key elt _ EmptyFM _) = (key,elt)
+findMin (Branch key elt _ fm_l _) = findMin fm_l
+
+deleteMin :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> FiniteMap key elt
+deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r
+deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r
+
+findMax :: FiniteMap key elt -> (key,elt)
+findMax (Branch key elt _ _ EmptyFM) = (key,elt)
+findMax (Branch key elt _ _ fm_r) = findMax fm_r
+
+deleteMax :: (Ord key OUTPUTABLE_key) => FiniteMap key elt -> FiniteMap key elt
+deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l
+deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r)
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Output-ery}
+%* *
+%************************************************************************
+
+\begin{code}
+#if defined(COMPILING_GHC)
+
+{- this is the real one actually...
+instance (Outputable key, Outputable elt) => Outputable (FiniteMap key elt) where
+ ppr sty fm = ppr sty (fmToList fm)
+-}
+
+-- temp debugging (ToDo: rm)
+instance (Outputable key) => Outputable (FiniteMap key elt) where
+ ppr sty fm = pprX sty fm
+
+pprX sty EmptyFM = ppChar '!'
+pprX sty (Branch key elt sz fm_l fm_r)
+ = ppBesides [ppLparen, pprX sty fm_l, ppSP,
+ ppr sty key, ppSP, ppInt (IF_GHC(I# sz, sz)), ppSP,
+ pprX sty fm_r, ppRparen]
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{FiniteSets---a thin veneer}
+%* *
+%************************************************************************
+
+\begin{code}
+#if defined(COMPILING_GHC)
+
+type FiniteSet key = FiniteMap key ()
+emptySet :: FiniteSet key
+mkSet :: (Ord key OUTPUTABLE_key) => [key] -> FiniteSet key
+isEmptySet :: FiniteSet key -> Bool
+elementOf :: (Ord key OUTPUTABLE_key) => key -> FiniteSet key -> Bool
+minusSet :: (Ord key OUTPUTABLE_key) => FiniteSet key -> FiniteSet key -> FiniteSet key
+setToList :: FiniteSet key -> [key]
+union :: (Ord key OUTPUTABLE_key) => FiniteSet key -> FiniteSet key -> FiniteSet key
+
+emptySet = emptyFM
+mkSet xs = listToFM [ (x, ()) | x <- xs]
+isEmptySet = isEmptyFM
+elementOf = elemFM
+minusSet = minusFM
+setToList = keysFM
+union = plusFM
+
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Efficiency pragmas for GHC}
+%* *
+%************************************************************************
+
+When the FiniteMap module is used in GHC, we specialise it for
+\tr{Uniques}, for dastardly efficiency reasons.
+
+\begin{code}
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__
+ -- the __GLASGOW_HASKELL__ chk avoids an hbc 0.999.7 bug
+
+{-# SPECIALIZE listToFM
+ :: [(Int,elt)] -> FiniteMap Int elt,
+ [(CLabel,elt)] -> FiniteMap CLabel elt,
+ [(FAST_STRING,elt)] -> FiniteMap FAST_STRING elt,
+ [((FAST_STRING,FAST_STRING),elt)] -> FiniteMap (FAST_STRING, FAST_STRING) elt
+ IF_NCG(COMMA [(Reg COMMA elt)] -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE addToFM
+ :: FiniteMap Int elt -> Int -> elt -> FiniteMap Int elt,
+ FiniteMap FAST_STRING elt -> FAST_STRING -> elt -> FiniteMap FAST_STRING elt,
+ FiniteMap CLabel elt -> CLabel -> elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> Reg -> elt -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE addListToFM
+ :: FiniteMap Int elt -> [(Int,elt)] -> FiniteMap Int elt,
+ FiniteMap CLabel elt -> [(CLabel,elt)] -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> [(Reg COMMA elt)] -> FiniteMap Reg elt)
+ #-}
+{-NOT EXPORTED!! # SPECIALIZE addToFM_C
+ :: (elt -> elt -> elt) -> FiniteMap Int elt -> Int -> elt -> FiniteMap Int elt,
+ (elt -> elt -> elt) -> FiniteMap CLabel elt -> CLabel -> elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA (elt -> elt -> elt) -> FiniteMap Reg elt -> Reg -> elt -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE addListToFM_C
+ :: (elt -> elt -> elt) -> FiniteMap Int elt -> [(Int,elt)] -> FiniteMap Int elt,
+ (elt -> elt -> elt) -> FiniteMap TyCon elt -> [(TyCon,elt)] -> FiniteMap TyCon elt,
+ (elt -> elt -> elt) -> FiniteMap CLabel elt -> [(CLabel,elt)] -> FiniteMap CLabel elt
+ IF_NCG(COMMA (elt -> elt -> elt) -> FiniteMap Reg elt -> [(Reg COMMA elt)] -> FiniteMap Reg elt)
+ #-}
+{-NOT EXPORTED!!! # SPECIALIZE delFromFM
+ :: FiniteMap Int elt -> Int -> FiniteMap Int elt,
+ FiniteMap CLabel elt -> CLabel -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> Reg -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE delListFromFM
+ :: FiniteMap Int elt -> [Int] -> FiniteMap Int elt,
+ FiniteMap CLabel elt -> [CLabel] -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> [Reg] -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE elemFM
+ :: FAST_STRING -> FiniteMap FAST_STRING elt -> Bool
+ #-}
+{-not EXPORTED!!! # SPECIALIZE filterFM
+ :: (Int -> elt -> Bool) -> FiniteMap Int elt -> FiniteMap Int elt,
+ (CLabel -> elt -> Bool) -> FiniteMap CLabel elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA (Reg -> elt -> Bool) -> FiniteMap Reg elt -> FiniteMap Reg elt)
+ #-}
+{-NOT EXPORTED!!! # SPECIALIZE intersectFM
+ :: FiniteMap Int elt -> FiniteMap Int elt -> FiniteMap Int elt,
+ FiniteMap CLabel elt -> FiniteMap CLabel elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> FiniteMap Reg elt -> FiniteMap Reg elt)
+ #-}
+{-not EXPORTED !!!# SPECIALIZE intersectFM_C
+ :: (elt -> elt -> elt) -> FiniteMap Int elt -> FiniteMap Int elt -> FiniteMap Int elt,
+ (elt -> elt -> elt) -> FiniteMap CLabel elt -> FiniteMap CLabel elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA (elt -> elt -> elt) -> FiniteMap Reg elt -> FiniteMap Reg elt -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE lookupFM
+ :: FiniteMap Int elt -> Int -> Maybe elt,
+ FiniteMap CLabel elt -> CLabel -> Maybe elt,
+ FiniteMap FAST_STRING elt -> FAST_STRING -> Maybe elt,
+ FiniteMap (FAST_STRING,FAST_STRING) elt -> (FAST_STRING,FAST_STRING) -> Maybe elt
+ IF_NCG(COMMA FiniteMap Reg elt -> Reg -> Maybe elt)
+ #-}
+{-# SPECIALIZE lookupWithDefaultFM
+ :: FiniteMap Int elt -> elt -> Int -> elt,
+ FiniteMap CLabel elt -> elt -> CLabel -> elt
+ IF_NCG(COMMA FiniteMap Reg elt -> elt -> Reg -> elt)
+ #-}
+{-# SPECIALIZE minusFM
+ :: FiniteMap Int elt -> FiniteMap Int elt -> FiniteMap Int elt,
+ FiniteMap TyCon elt -> FiniteMap TyCon elt -> FiniteMap TyCon elt,
+ FiniteMap FAST_STRING elt -> FiniteMap FAST_STRING elt -> FiniteMap FAST_STRING elt,
+ FiniteMap CLabel elt -> FiniteMap CLabel elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> FiniteMap Reg elt -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE plusFM
+ :: FiniteMap Int elt -> FiniteMap Int elt -> FiniteMap Int elt,
+ FiniteMap TyCon elt -> FiniteMap TyCon elt -> FiniteMap TyCon elt,
+ FiniteMap CLabel elt -> FiniteMap CLabel elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA FiniteMap Reg elt -> FiniteMap Reg elt -> FiniteMap Reg elt)
+ #-}
+{-# SPECIALIZE plusFM_C
+ :: (elt -> elt -> elt) -> FiniteMap Int elt -> FiniteMap Int elt -> FiniteMap Int elt,
+ (elt -> elt -> elt) -> FiniteMap CLabel elt -> FiniteMap CLabel elt -> FiniteMap CLabel elt
+ IF_NCG(COMMA (elt -> elt -> elt) -> FiniteMap Reg elt -> FiniteMap Reg elt -> FiniteMap Reg elt)
+ #-}
+
+#endif {- compiling for GHC -}
+\end{code}
diff --git a/ghc/lib/ghc/FiniteMap_mc.hi b/ghc/lib/ghc/FiniteMap_mc.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_mc.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap_mg.hi b/ghc/lib/ghc/FiniteMap_mg.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_mg.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap_mp.hi b/ghc/lib/ghc/FiniteMap_mp.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_mp.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap_mr.hi b/ghc/lib/ghc/FiniteMap_mr.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_mr.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap_mt.hi b/ghc/lib/ghc/FiniteMap_mt.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_mt.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap_p.hi b/ghc/lib/ghc/FiniteMap_p.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_p.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/FiniteMap_t.hi b/ghc/lib/ghc/FiniteMap_t.hi
new file mode 100644
index 0000000000..393bb4b684
--- /dev/null
+++ b/ghc/lib/ghc/FiniteMap_t.hi
@@ -0,0 +1,55 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface FiniteMap where
+import PreludeStdIO(Maybe)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+addListToFM :: Ord a => FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 111 _N_ _N_ _N_ _N_ #-}
+addListToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1211 _N_ _S_ "LLLS" _N_ _N_ #-}
+addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 12122 _N_ _N_ _N_ _N_ #-}
+delFromFM :: Ord a => FiniteMap a b -> a -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+delListFromFM :: Ord a => FiniteMap a b -> [a] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+elemFM :: Ord a => a -> FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+eltsFM :: FiniteMap a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptyFM :: FiniteMap a b
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, u1] [] _N_ #-}
+filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+fmToList :: FiniteMap a b -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldFM :: (a -> b -> c -> c) -> c -> FiniteMap a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+intersectFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+isEmptyFM :: FiniteMap a b -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+listToFM :: Ord a => [(a, b)] -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+lookupWithDefaultFM :: Ord a => FiniteMap a b -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+mapFM :: (b -> a -> c) -> FiniteMap b a -> FiniteMap b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+plusFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2221 _N_ _N_ _N_ _N_ #-}
+singletonFM :: a -> b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+sizeFM :: FiniteMap a b -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps.hi b/ghc/lib/ghc/ListSetOps.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps.lhs b/ghc/lib/ghc/ListSetOps.lhs
new file mode 100644
index 0000000000..dbc749c2e2
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps.lhs
@@ -0,0 +1,95 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+%
+\section[ListSetOps]{Set-like operations on lists}
+
+\begin{code}
+module ListSetOps (
+ unionLists,
+ intersectLists,
+ minusList
+#if ! defined(COMPILING_GHC)
+ , disjointLists, intersectingLists
+#endif
+ ) where
+
+#if defined(COMPILING_GHC)
+import Util
+# ifdef USE_ATTACK_PRAGMAS
+import AbsUniType
+import Id ( Id )
+# endif
+#endif
+\end{code}
+
+\begin{code}
+unionLists :: (Eq a) => [a] -> [a] -> [a]
+unionLists [] [] = []
+unionLists [] b = b
+unionLists a [] = a
+unionLists (a:as) b
+ | a `is_elem` b = unionLists as b
+ | otherwise = a : unionLists as b
+ where
+#if defined(COMPILING_GHC)
+ is_elem = isIn "unionLists"
+#else
+ is_elem = elem
+#endif
+
+intersectLists :: (Eq a) => [a] -> [a] -> [a]
+intersectLists [] [] = []
+intersectLists [] b = []
+intersectLists a [] = []
+intersectLists (a:as) b
+ | a `is_elem` b = a : intersectLists as b
+ | otherwise = intersectLists as b
+ where
+#if defined(COMPILING_GHC)
+ is_elem = isIn "intersectLists"
+#else
+ is_elem = elem
+#endif
+\end{code}
+
+Everything in the first list that is not in the second list:
+\begin{code}
+minusList :: (Eq a) => [a] -> [a] -> [a]
+minusList xs ys = [ x | x <- xs, x `not_elem` ys]
+ where
+#if defined(COMPILING_GHC)
+ not_elem = isn'tIn "minusList"
+#else
+ not_elem = notElem
+#endif
+\end{code}
+
+\begin{code}
+#if ! defined(COMPILING_GHC)
+
+disjointLists, intersectingLists :: Eq a => [a] -> [a] -> Bool
+
+disjointLists [] bs = True
+disjointLists (a:as) bs
+ | a `elem` bs = False
+ | otherwise = disjointLists as bs
+
+intersectingLists xs ys = not (disjointLists xs ys)
+#endif
+\end{code}
+
+\begin{code}
+#if defined(COMPILING_GHC)
+# ifdef USE_ATTACK_PRAGMAS
+
+{-# SPECIALIZE unionLists :: [TyVar] -> [TyVar] -> [TyVar] #-}
+{-# SPECIALIZE intersectLists :: [TyVar] -> [TyVar] -> [TyVar] #-}
+
+{-# SPECIALIZE minusList :: [TyVar] -> [TyVar] -> [TyVar],
+ [Id] -> [Id] -> [Id],
+ [Int] -> [Int] -> [Int]
+ #-}
+
+# endif
+#endif
+\end{code}
diff --git a/ghc/lib/ghc/ListSetOps_mc.hi b/ghc/lib/ghc/ListSetOps_mc.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_mc.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps_mg.hi b/ghc/lib/ghc/ListSetOps_mg.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_mg.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps_mp.hi b/ghc/lib/ghc/ListSetOps_mp.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_mp.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps_mr.hi b/ghc/lib/ghc/ListSetOps_mr.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_mr.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps_mt.hi b/ghc/lib/ghc/ListSetOps_mt.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_mt.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps_p.hi b/ghc/lib/ghc/ListSetOps_p.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_p.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/ListSetOps_t.hi b/ghc/lib/ghc/ListSetOps_t.hi
new file mode 100644
index 0000000000..0b0224f84b
--- /dev/null
+++ b/ghc/lib/ghc/ListSetOps_t.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListSetOps where
+disjointLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+intersectingLists :: Eq a => [a] -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+minusList :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+unionLists :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/MatchPS.hi b/ghc/lib/ghc/MatchPS.hi
new file mode 100644
index 0000000000..c39c1adb8a
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface MatchPS where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+import Regex(REmatch(..))
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+chopPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+findPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+getAfterMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAU(U(P)U(P))A)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLastMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAU(U(P)U(P)))L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchedGroup :: REmatch -> Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(U(U(P)U(P))P)AAAA)U(P)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchesNo :: REmatch -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(AU(P))P)AAAA)" {_A_ 2 _U_ 20 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int#) (u1 :: Array# (Int, Int)) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: REmatch) -> case u0 of { _ALG_ _ORIG_ Regex REmatch (u1 :: Array Int (Int, Int)) (u2 :: (Int, Int)) (u3 :: (Int, Int)) (u4 :: (Int, Int)) (u5 :: (Int, Int)) -> case u1 of { _ALG_ _Array (u6 :: (Int, Int)) (u7 :: Array# (Int, Int)) -> case u6 of { _ALG_ _TUP_2 (u8 :: Int) (u9 :: Int) -> u9; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+getWholeMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAU(U(P)U(P))AA)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+match2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+matchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+matchPrefixPS :: _PackedString -> _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+replacePS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+rfindPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+search2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+searchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+substPS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/MatchPS.lhs b/ghc/lib/ghc/MatchPS.lhs
new file mode 100644
index 0000000000..54ed33c187
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS.lhs
@@ -0,0 +1,494 @@
+\section[match]{PackedString functions for matching}
+
+This module provides regular expression matching and substitution
+at the PackedString level. It is built on top of the GNU Regex
+library modified to handle perl regular expression syntax.
+For a complete description of the perl syntax, do `man perlre`
+or have a gander in (Programming|Learning) Perl. Here's
+a short summary:
+
+^ matches the beginning of line
+$ matches end of line
+\b matches word boundary
+\B matches non-word boundary
+\w matches a word(alpha-numeric) character
+\W matches a non-word character
+\d matches a digit
+\D matches a non-digit
+\s matches whitespace
+\S matches non-whitespace
+\A matches beginning of buffer
+\Z matches end-of-buffer
+. matches any (bar newline in single-line mode)
++ matches 1 or more times
+* matches 0 or more times
+? matches 0 or 1
+{n,m} matches >=n and <=m atoms
+{n,} matches at least n times
+{n} matches n times
+[..] matches any character member of char class.
+(..) if pattern inside parens match, then the ith group is bound
+ to the matched string
+\digit matches whatever the ith group matched.
+
+Backslashed letters
+\n newline
+\r carriage return
+\t tab
+\f formfeed
+\v vertical tab
+\a alarm bell
+\e escape
+
+
+\begin{code}
+module MatchPS
+
+ (
+ matchPS,
+ searchPS,
+ substPS,
+ replacePS,
+
+ match2PS,
+ search2PS,
+
+ getMatchesNo,
+ getMatchedGroup,
+ getWholeMatch,
+ getLastMatch,
+ getAfterMatch,
+
+ findPS,
+ rfindPS,
+ chopPS,
+
+ matchPrefixPS,
+
+ REmatch(..)
+ ) where
+
+import PreludeGlaST
+
+import Regex
+
+\end{code}
+
+_tailPS and _dropPS in PS.lhs are not to my liking, use
+these instead.
+
+\begin{code}
+
+_dropPS' x str = _substrPS str x (_lengthPS str)
+
+_tailPS' x
+ = if _nullPS x then
+ error "_tailPS []"
+ else
+ _substrPS x 1 (_lengthPS x)
+
+
+\end{code}
+
+\subsection[ps-matching]{PackedString matching}
+
+Posix matching, returning an array of the the intervals that
+the individual groups matched within the string.
+
+\begin{code}
+
+matchPS :: _PackedString -- reg. exp
+ -> _PackedString -- string to match
+ -> [Char] -- flags
+ -> Maybe REmatch
+matchPS reg str flags
+ = let
+ insensitive = 'i' `elem` flags
+ mode = 's' `elem` flags
+ in
+ unsafePerformPrimIO (
+ re_compile_pattern reg mode insensitive `thenPrimIO` \ pat ->
+ re_match pat str 0 True)
+
+
+match2PS :: _PackedString -- reg. exp
+ -> _PackedString -- string1 to match
+ -> _PackedString -- string2 to match
+ -> [Char] -- flags
+ -> Maybe REmatch
+match2PS reg str1 str2 flags
+ = let
+ insensitive = 'i' `elem` flags
+ mode = 's' `elem` flags
+ len1 = _lengthPS str1
+ len2 = _lengthPS str2
+ in
+ unsafePerformPrimIO (
+ re_compile_pattern reg mode insensitive `thenPrimIO` \ pat ->
+ re_match2 pat str1 str2 0 (len1+len2) True)
+
+\end{code}
+
+PackedString front-end to searching with GNU Regex
+
+\begin{code}
+
+searchPS :: _PackedString -- reg. exp
+ -> _PackedString -- string to match
+ -> [Char] -- flags
+ -> Maybe REmatch
+searchPS reg str flags
+ = let
+ insensitive = 'i' `elem` flags
+ mode = 's' `elem` flags
+ in
+ unsafePerformPrimIO (
+ re_compile_pattern reg mode insensitive `thenPrimIO` \ pat ->
+ re_search pat str
+ 0
+ (_lengthPS str)
+ True)
+
+
+
+search2PS :: _PackedString -- reg. exp
+ -> _PackedString -- string to match
+ -> _PackedString -- string to match
+ -> [Char] -- flags
+ -> Maybe REmatch
+search2PS reg str1 str2 flags
+ = let
+ insensitive = 'i' `elem` flags
+ mode = 's' `elem` flags
+ len1 = _lengthPS str1
+ len2 = _lengthPS str2
+ len = len1+len2
+ in
+ unsafePerformPrimIO (
+ re_compile_pattern reg mode insensitive `thenPrimIO` \ pat ->
+ re_search2 pat
+ str1
+ str2
+ 0
+ len
+ len
+ True)
+
+
+
+\end{code}
+
+@_substrPS s st end@ cuts out the chunk in \tr{s} between \tr{st} and \tr{end}, inclusive.
+The \tr{Regex} registers represent substrings by storing the start and the end point plus
+one( st==end => empty string) , so we use @chunkPS@ instead.
+
+
+\begin{code}
+
+_chunkPS :: _PackedString
+ -> (Int,Int)
+ -> _PackedString
+_chunkPS str (st,end)
+ = if st==end then
+ _nilPS
+ else
+ _substrPS str st (max 0 (end-1))
+
+\end{code}
+
+Perl-like match and substitute
+
+\begin{code}
+
+substPS :: _PackedString -- reg. exp
+ -> _PackedString -- replacement
+ -> [Char] -- flags
+ -> _PackedString -- string
+ -> _PackedString
+substPS rexp
+ repl
+ flags
+ str
+ = search str
+ where
+ global = 'g' `elem` flags
+ case_insensitive = 'i' `elem` flags
+ mode = 's' `elem` flags -- single-line mode
+ pat = unsafePerformPrimIO (
+ re_compile_pattern rexp mode case_insensitive)
+
+ search str
+ = let
+ search_res
+ = unsafePerformPrimIO (re_search pat str 0 (_lengthPS str) True)
+ in
+ case search_res of
+ Nothing -> str
+ Just matcher@(REmatch arr before match after lst) ->
+ let
+ (st,en) = match
+ prefix = _chunkPS str before
+ suffix
+ = if global && (st /= en) then
+ search (_dropPS' en str)
+ else
+ _chunkPS str after
+ in
+ _concatPS [prefix,
+ replace matcher repl str,
+ suffix]
+
+
+replace :: REmatch
+ -> _PackedString
+ -> _PackedString
+ -> _PackedString
+replace (REmatch arr before@(_,b_end) match after lst)
+ replacement
+ str
+ = _concatPS (reverse acc) -- ToDo: write a `reversed' version of concatPS
+ where
+ (_,b) = bounds arr
+
+ acc = replace' [] replacement False
+
+ single :: Char -> _PackedString
+ single x = _consPS x _nilPS
+
+ replace' :: [_PackedString]
+ -> _PackedString
+ -> Bool
+ -> [_PackedString]
+ replace' acc repl escaped
+ = if (_nullPS repl) then
+ acc
+ else
+ let
+ x@(C# x#) = _headPS repl
+ xs = _tailPS' repl
+ in
+ case x# of
+ '\\'# ->
+ if escaped then
+ replace' acc xs True
+ else
+ replace' ((single x):acc) xs (not escaped)
+ '$'# ->
+ if (not escaped) then
+ let
+ x' = _headPS xs
+ xs' = _tailPS' xs
+ ith_ival = arr!num
+ (num,xs_num) = getNumber ((ord x') - ord '0') xs'
+ in
+ if (isDigit x') && (num<=b) then
+ replace' ((_chunkPS str ith_ival):acc) xs_num escaped
+ else if x' == '&' then
+ replace' ((_chunkPS str match):acc) xs' escaped
+ else if x' == '+' then
+ replace' ((_chunkPS str lst):acc) xs' escaped
+ else if x' == '`' then
+ replace' ((_chunkPS str (0,b_end)):acc) xs' escaped
+ else if x' == '\'' then
+ replace' ((_chunkPS str after):acc) xs' escaped
+ else -- ignore
+ replace' acc xs escaped
+ else
+ replace' ((single x):acc) xs False
+
+ _ -> if escaped then
+ (case x# of
+ 'n'# -> -- newline
+ replace' ((single '\n'):acc)
+ 'f'# -> -- formfeed
+ replace' ((single '\f'):acc)
+ 'r'# -> -- carriage return
+ replace' ((single '\r'):acc)
+ 't'# -> -- (horiz) tab
+ replace' ((single '\t'):acc)
+ 'v'# -> -- vertical tab
+ replace' ((single '\v'):acc)
+ 'a'# -> -- alarm bell
+ replace' ((single '\a'):acc)
+ 'e'# -> -- escape
+ replace' ((single '\033'):acc)
+ _ ->
+ replace' ((single x):acc)) xs False
+ else
+ replace' ((single x):acc) xs False
+
+
+getNumber :: Int -> _PackedString -> (Int,_PackedString)
+getNumber acc ps
+ = if _nullPS ps then
+ (acc,ps)
+ else
+ let
+ x = _headPS ps
+ xs = _tailPS ps
+ in
+ if (isDigit x) then
+ getNumber (acc*10+(ord x - ord '0')) xs
+ else
+ (acc,ps)
+
+\end{code}
+
+Just like substPS, but no prefix and suffix.
+
+\begin{code}
+
+replacePS :: _PackedString -- reg. exp
+ -> _PackedString -- replacement
+ -> [Char] -- flags
+ -> _PackedString -- string
+ -> _PackedString
+replacePS rexp
+ repl
+ flags
+ str
+ = search str
+ where
+ global = 'g' `elem` flags
+ case_insensitive = 'i' `elem` flags
+ mode = 's' `elem` flags -- single-line mode
+ pat = unsafePerformPrimIO (
+ re_compile_pattern rexp mode case_insensitive)
+
+ search str
+ = let
+ search_res
+ = unsafePerformPrimIO (re_search pat str 0 (_lengthPS str) True)
+ in
+ case search_res of
+ Nothing -> str
+ Just matcher@(REmatch arr before match after lst) ->
+ replace matcher repl str
+
+\end{code}
+
+Picking matched groups out of string
+
+\begin{code}
+
+getMatchesNo :: REmatch
+ -> Int
+getMatchesNo (REmatch arr _ _ _ _)
+ = snd (bounds arr)
+
+getMatchedGroup :: REmatch
+ -> Int
+ -> _PackedString
+ -> _PackedString
+getMatchedGroup (REmatch arr bef mtch after lst) nth str
+ = let
+ (1,grps) = bounds arr
+ in
+ if (nth >= 1) && (nth <= grps) then
+ _chunkPS str (arr!nth)
+ else
+ error "getMatchedGroup: group out of range"
+
+getWholeMatch :: REmatch
+ -> _PackedString
+ -> _PackedString
+getWholeMatch (REmatch _ _ mtch _ _) str
+ = _chunkPS str mtch
+
+getLastMatch :: REmatch
+ -> _PackedString
+ -> _PackedString
+getLastMatch (REmatch _ _ _ _ lst) str
+ = _chunkPS str lst
+
+getAfterMatch :: REmatch
+ -> _PackedString
+ -> _PackedString
+getAfterMatch (REmatch _ _ _ aft _) str
+ = _chunkPS str aft
+
+\end{code}
+
+
+More or less straight translation of a brute-force string matching
+function written in C. (Sedgewick ch. 18)
+
+This is intended to provide much the same facilities as index/rindex in perl.
+
+\begin{code}
+
+
+findPS :: _PackedString
+ -> _PackedString
+ -> Maybe Int
+findPS str substr
+ = let
+ m = _lengthPS substr
+ n = _lengthPS str
+
+ loop i j
+ | j>=m || i>=n = if j==m then (Just (i-m)) else Nothing
+ | otherwise
+ = inner_loop i j
+
+ inner_loop i j
+ = if j<m && i<n && (_indexPS str i /= _indexPS substr j) then
+ inner_loop (i-j+1) 0
+ else
+ loop (i+1) (j+1)
+ in
+ loop 0 0
+
+rfindPS :: _PackedString
+ -> _PackedString
+ -> Maybe Int
+rfindPS str substr
+ = let
+ m = _lengthPS substr - 1
+ n = _lengthPS str - 1
+
+ loop i j
+ | j<0 || i<0 = if j<0 then (Just (i+1)) else Nothing
+ | otherwise
+ = inner_loop i j
+
+ inner_loop i j
+ = if j>=0 && i>=0 && (_indexPS str i /= _indexPS substr j) then
+ inner_loop (i+(m-j)-1) m
+ else
+ loop (i-1) (j-1)
+ in
+ loop n m
+
+
+\end{code}
+
+\begin{code}
+
+chopPS :: _PackedString -> _PackedString
+chopPS str = if _nullPS str then
+ _nilPS
+ else
+ _chunkPS str (0,_lengthPS str-1)
+
+\end{code}
+
+Tries to match as much as possible of strA starting from the beginning of strB
+(handy when matching fancy literals in parsers)
+
+\begin{code}
+matchPrefixPS :: _PackedString
+ -> _PackedString
+ -> Int
+matchPrefixPS pref str
+ = matchPrefixPS' pref str 0
+ where
+ matchPrefixPS' pref str n
+ = if (_nullPS pref) || (_nullPS str) then
+ n
+ else if (_headPS pref) == (_headPS str) then
+ matchPrefixPS' (_tailPS pref) (_tailPS str) (n+1)
+ else
+ n
+
+\end{code}
diff --git a/ghc/lib/ghc/MatchPS_mc.hi b/ghc/lib/ghc/MatchPS_mc.hi
new file mode 100644
index 0000000000..c39c1adb8a
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS_mc.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface MatchPS where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+import Regex(REmatch(..))
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+chopPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+findPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+getAfterMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAU(U(P)U(P))A)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLastMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAU(U(P)U(P)))L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchedGroup :: REmatch -> Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(U(U(P)U(P))P)AAAA)U(P)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchesNo :: REmatch -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(AU(P))P)AAAA)" {_A_ 2 _U_ 20 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int#) (u1 :: Array# (Int, Int)) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: REmatch) -> case u0 of { _ALG_ _ORIG_ Regex REmatch (u1 :: Array Int (Int, Int)) (u2 :: (Int, Int)) (u3 :: (Int, Int)) (u4 :: (Int, Int)) (u5 :: (Int, Int)) -> case u1 of { _ALG_ _Array (u6 :: (Int, Int)) (u7 :: Array# (Int, Int)) -> case u6 of { _ALG_ _TUP_2 (u8 :: Int) (u9 :: Int) -> u9; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+getWholeMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAU(U(P)U(P))AA)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+match2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+matchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+matchPrefixPS :: _PackedString -> _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+replacePS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+rfindPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+search2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+searchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+substPS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/MatchPS_mg.hi b/ghc/lib/ghc/MatchPS_mg.hi
new file mode 100644
index 0000000000..c39c1adb8a
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS_mg.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface MatchPS where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+import Regex(REmatch(..))
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+chopPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+findPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+getAfterMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAU(U(P)U(P))A)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLastMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAU(U(P)U(P)))L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchedGroup :: REmatch -> Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(U(U(P)U(P))P)AAAA)U(P)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchesNo :: REmatch -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(AU(P))P)AAAA)" {_A_ 2 _U_ 20 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int#) (u1 :: Array# (Int, Int)) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: REmatch) -> case u0 of { _ALG_ _ORIG_ Regex REmatch (u1 :: Array Int (Int, Int)) (u2 :: (Int, Int)) (u3 :: (Int, Int)) (u4 :: (Int, Int)) (u5 :: (Int, Int)) -> case u1 of { _ALG_ _Array (u6 :: (Int, Int)) (u7 :: Array# (Int, Int)) -> case u6 of { _ALG_ _TUP_2 (u8 :: Int) (u9 :: Int) -> u9; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+getWholeMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAU(U(P)U(P))AA)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+match2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+matchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+matchPrefixPS :: _PackedString -> _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+replacePS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+rfindPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+search2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+searchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+substPS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/MatchPS_mp.hi b/ghc/lib/ghc/MatchPS_mp.hi
new file mode 100644
index 0000000000..c39c1adb8a
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS_mp.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface MatchPS where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+import Regex(REmatch(..))
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+chopPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+findPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+getAfterMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAU(U(P)U(P))A)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLastMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAU(U(P)U(P)))L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchedGroup :: REmatch -> Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(U(U(P)U(P))P)AAAA)U(P)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchesNo :: REmatch -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(AU(P))P)AAAA)" {_A_ 2 _U_ 20 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int#) (u1 :: Array# (Int, Int)) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: REmatch) -> case u0 of { _ALG_ _ORIG_ Regex REmatch (u1 :: Array Int (Int, Int)) (u2 :: (Int, Int)) (u3 :: (Int, Int)) (u4 :: (Int, Int)) (u5 :: (Int, Int)) -> case u1 of { _ALG_ _Array (u6 :: (Int, Int)) (u7 :: Array# (Int, Int)) -> case u6 of { _ALG_ _TUP_2 (u8 :: Int) (u9 :: Int) -> u9; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+getWholeMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAU(U(P)U(P))AA)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+match2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+matchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+matchPrefixPS :: _PackedString -> _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+replacePS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+rfindPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+search2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+searchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+substPS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/MatchPS_p.hi b/ghc/lib/ghc/MatchPS_p.hi
new file mode 100644
index 0000000000..c39c1adb8a
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS_p.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface MatchPS where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+import Regex(REmatch(..))
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+chopPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+findPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+getAfterMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAU(U(P)U(P))A)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLastMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAU(U(P)U(P)))L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchedGroup :: REmatch -> Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(U(U(P)U(P))P)AAAA)U(P)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchesNo :: REmatch -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(AU(P))P)AAAA)" {_A_ 2 _U_ 20 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int#) (u1 :: Array# (Int, Int)) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: REmatch) -> case u0 of { _ALG_ _ORIG_ Regex REmatch (u1 :: Array Int (Int, Int)) (u2 :: (Int, Int)) (u3 :: (Int, Int)) (u4 :: (Int, Int)) (u5 :: (Int, Int)) -> case u1 of { _ALG_ _Array (u6 :: (Int, Int)) (u7 :: Array# (Int, Int)) -> case u6 of { _ALG_ _TUP_2 (u8 :: Int) (u9 :: Int) -> u9; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+getWholeMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAU(U(P)U(P))AA)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+match2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+matchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+matchPrefixPS :: _PackedString -> _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+replacePS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+rfindPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+search2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+searchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+substPS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/MatchPS_t.hi b/ghc/lib/ghc/MatchPS_t.hi
new file mode 100644
index 0000000000..c39c1adb8a
--- /dev/null
+++ b/ghc/lib/ghc/MatchPS_t.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface MatchPS where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+import Regex(REmatch(..))
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+chopPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+findPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+getAfterMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAU(U(P)U(P))A)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLastMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAU(U(P)U(P)))L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchedGroup :: REmatch -> Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(U(U(P)U(P))P)AAAA)U(P)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getMatchesNo :: REmatch -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(AU(P))P)AAAA)" {_A_ 2 _U_ 20 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int#) (u1 :: Array# (Int, Int)) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: REmatch) -> case u0 of { _ALG_ _ORIG_ Regex REmatch (u1 :: Array Int (Int, Int)) (u2 :: (Int, Int)) (u3 :: (Int, Int)) (u4 :: (Int, Int)) (u5 :: (Int, Int)) -> case u1 of { _ALG_ _Array (u6 :: (Int, Int)) (u7 :: Array# (Int, Int)) -> case u6 of { _ALG_ _TUP_2 (u8 :: Int) (u9 :: Int) -> u9; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+getWholeMatch :: REmatch -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAU(U(P)U(P))AA)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+match2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+matchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+matchPrefixPS :: _PackedString -> _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+replacePS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+rfindPS :: _PackedString -> _PackedString -> Maybe Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+search2PS :: _PackedString -> _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SSSS" _N_ _N_ #-}
+searchPS :: _PackedString -> _PackedString -> [Char] -> Maybe REmatch
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSS" _N_ _N_ #-}
+substPS :: _PackedString -> _PackedString -> [Char] -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ "SLSS" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes.hi b/ghc/lib/ghc/Maybes.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes.lhs b/ghc/lib/ghc/Maybes.lhs
new file mode 100644
index 0000000000..66c12797bc
--- /dev/null
+++ b/ghc/lib/ghc/Maybes.lhs
@@ -0,0 +1,222 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+%
+\section[Maybes]{The `Maybe' types and associated utility functions}
+
+\begin{code}
+#if defined(COMPILING_GHC)
+#include "HsVersions.h"
+#endif
+
+module Maybes (
+ Maybe(..), MaybeErr(..),
+
+ allMaybes, -- GHCI only
+ assocMaybe,
+ catMaybes,
+ failMaB,
+ failMaybe,
+ firstJust,
+ mapMaybe, -- GHCI only
+ maybeToBool,
+ mkLookupFun,
+ returnMaB,
+ returnMaybe, -- GHCI only
+ thenMaB,
+ thenMaybe -- GHCI only
+
+#if ! defined(COMPILING_GHC)
+ , findJust
+ , foldlMaybeErrs
+ , listMaybeErrs
+#endif
+ ) where
+
+#if defined(COMPILING_GHC)
+import AbsUniType
+import Id
+import IdInfo
+import Name
+import Outputable
+#if USE_ATTACK_PRAGMAS
+import Util
+#endif
+#endif
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection[Maybe type]{The @Maybe@ type}
+%* *
+%************************************************************************
+
+\begin{code}
+#if __HASKELL1__ < 3
+data Maybe a
+ = Nothing
+ | Just a
+#endif
+\end{code}
+
+\begin{code}
+maybeToBool :: Maybe a -> Bool
+maybeToBool Nothing = False
+maybeToBool (Just x) = True
+\end{code}
+
+@catMaybes@ takes a list of @Maybe@s and returns a list of
+the contents of all the @Just@s in it. @allMaybes@ collects
+a list of @Justs@ into a single @Just@, returning @Nothing@ if there
+are any @Nothings@.
+
+\begin{code}
+catMaybes :: [Maybe a] -> [a]
+catMaybes [] = []
+catMaybes (Nothing : xs) = catMaybes xs
+catMaybes (Just x : xs) = (x : catMaybes xs)
+
+allMaybes :: [Maybe a] -> Maybe [a]
+allMaybes [] = Just []
+allMaybes (Nothing : ms) = Nothing
+allMaybes (Just x : ms) = case (allMaybes ms) of
+ Nothing -> Nothing
+ Just xs -> Just (x:xs)
+\end{code}
+
+@firstJust@ takes a list of @Maybes@ and returns the
+first @Just@ if there is one, or @Nothing@ otherwise.
+
+\begin{code}
+firstJust :: [Maybe a] -> Maybe a
+firstJust [] = Nothing
+firstJust (Just x : ms) = Just x
+firstJust (Nothing : ms) = firstJust ms
+\end{code}
+
+\begin{code}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+findJust f [] = Nothing
+findJust f (a:as) = case f a of
+ Nothing -> findJust f as
+ b -> b
+\end{code}
+
+@assocMaybe@ looks up in an assocation list, returning
+@Nothing@ if it fails.
+
+\begin{code}
+assocMaybe :: (Eq a) => [(a,b)] -> a -> Maybe b
+
+assocMaybe alist key
+ = lookup alist
+ where
+ lookup [] = Nothing
+ lookup ((tv,ty):rest) = if key == tv then Just ty else lookup rest
+
+#if defined(COMPILING_GHC)
+{-# SPECIALIZE assocMaybe
+ :: [(String, b)] -> String -> Maybe b,
+ [(Id, b)] -> Id -> Maybe b,
+ [(Class, b)] -> Class -> Maybe b,
+ [(Int, b)] -> Int -> Maybe b,
+ [(Name, b)] -> Name -> Maybe b,
+ [(TyVar, b)] -> TyVar -> Maybe b,
+ [(TyVarTemplate, b)] -> TyVarTemplate -> Maybe b
+ #-}
+#endif
+\end{code}
+
+@mkLookupFun alist s@ is a function which looks up
+@s@ in the association list @alist@, returning a Maybe type.
+
+\begin{code}
+mkLookupFun :: (key -> key -> Bool) -- Equality predicate
+ -> [(key,val)] -- The assoc list
+ -> key -- The key
+ -> Maybe val -- The corresponding value
+
+mkLookupFun eq alist s
+ = case [a | (s',a) <- alist, s' `eq` s] of
+ [] -> Nothing
+ (a:_) -> Just a
+\end{code}
+
+\begin{code}
+#if __HASKELL1__ < 3
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+m `thenMaybe` k = case m of
+ Nothing -> Nothing
+ Just a -> k a
+#endif
+returnMaybe :: a -> Maybe a
+returnMaybe = Just
+
+failMaybe :: Maybe a
+failMaybe = Nothing
+
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+mapMaybe f [] = returnMaybe []
+mapMaybe f (x:xs) = f x `thenMaybe` (\ x' ->
+ mapMaybe f xs `thenMaybe` (\ xs' ->
+ returnMaybe (x':xs') ))
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[MaybeErr type]{The @MaybeErr@ type}
+%* *
+%************************************************************************
+
+\begin{code}
+data MaybeErr val err = Succeeded val | Failed err
+\end{code}
+
+\begin{code}
+thenMaB :: MaybeErr val1 err -> (val1 -> MaybeErr val2 err) -> MaybeErr val2 err
+thenMaB m k
+ = case m of
+ Succeeded v -> k v
+ Failed e -> Failed e
+
+returnMaB :: val -> MaybeErr val err
+returnMaB v = Succeeded v
+
+failMaB :: err -> MaybeErr val err
+failMaB e = Failed e
+\end{code}
+
+
+@listMaybeErrs@ takes a list of @MaybeErrs@ and, if they all succeed, returns
+a @Succeeded@ of a list of their values. If any fail, it returns a
+@Failed@ of the list of all the errors in the list.
+
+\begin{code}
+listMaybeErrs :: [MaybeErr val err] -> MaybeErr [val] [err]
+listMaybeErrs
+ = foldr combine (Succeeded [])
+ where
+ combine (Succeeded v) (Succeeded vs) = Succeeded (v:vs)
+ combine (Failed err) (Succeeded _) = Failed [err]
+ combine (Succeeded v) (Failed errs) = Failed errs
+ combine (Failed err) (Failed errs) = Failed (err:errs)
+\end{code}
+
+@foldlMaybeErrs@ works along a list, carrying an accumulator; it
+applies the given function to the accumulator and the next list item,
+accumulating any errors that occur.
+
+\begin{code}
+foldlMaybeErrs :: (acc -> input -> MaybeErr acc err)
+ -> acc
+ -> [input]
+ -> MaybeErr acc [err]
+
+foldlMaybeErrs k accum ins = do_it [] accum ins
+ where
+ do_it [] acc [] = Succeeded acc
+ do_it errs acc [] = Failed errs
+ do_it errs acc (v:vs) = case (k acc v) of
+ Succeeded acc' -> do_it errs acc' vs
+ Failed err -> do_it (err:errs) acc vs
+\end{code}
diff --git a/ghc/lib/ghc/Maybes_mc.hi b/ghc/lib/ghc/Maybes_mc.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_mc.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes_mg.hi b/ghc/lib/ghc/Maybes_mg.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_mg.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes_mp.hi b/ghc/lib/ghc/Maybes_mp.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_mp.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes_mr.hi b/ghc/lib/ghc/Maybes_mr.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_mr.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes_mt.hi b/ghc/lib/ghc/Maybes_mt.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_mt.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes_p.hi b/ghc/lib/ghc/Maybes_p.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_p.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/Maybes_t.hi b/ghc/lib/ghc/Maybes_t.hi
new file mode 100644
index 0000000000..cf5b8e0d1a
--- /dev/null
+++ b/ghc/lib/ghc/Maybes_t.hi
@@ -0,0 +1,39 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Maybes where
+import Prelude(thenMaybe)
+import PreludeStdIO(Maybe(..))
+data Maybe a = Nothing | Just a
+data MaybeErr a b = Succeeded a | Failed b
+allMaybes :: [Maybe a] -> Maybe [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+assocMaybe :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+catMaybes :: [Maybe a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+failMaB :: b -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u1) -> _!_ _ORIG_ Maybes Failed [u0, u1] [u2] _N_ #-}
+failMaybe :: Maybe a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ Nothing [u0] [] _N_ #-}
+findJust :: (a -> Maybe b) -> [a] -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+firstJust :: [Maybe a] -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+foldlMaybeErrs :: (b -> a -> MaybeErr b c) -> b -> [a] -> MaybeErr b [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LLS" _N_ _N_ #-}
+listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+maybeToBool :: Maybe a -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 4 _/\_ u0 -> \ (u1 :: Maybe u0) -> case u1 of { _ALG_ Nothing -> _!_ False [] []; Just (u2 :: u0) -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+mkLookupFun :: (a -> a -> Bool) -> [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+returnMaB :: a -> MaybeErr a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0) -> _!_ _ORIG_ Maybes Succeeded [u0, u1] [u2] _N_ #-}
+returnMaybe :: a -> Maybe a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: u0) -> _!_ Just [u0] [u1] _N_ #-}
+thenMaB :: MaybeErr a c -> (a -> MaybeErr b c) -> MaybeErr b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 3 2 CX 6 _/\_ u0 u1 u2 -> \ (u3 :: MaybeErr u0 u2) (u4 :: u0 -> MaybeErr u1 u2) -> case u3 of { _ALG_ _ORIG_ Maybes Succeeded (u5 :: u0) -> _APP_ u4 [ u5 ]; _ORIG_ Maybes Failed (u6 :: u2) -> _!_ _ORIG_ Maybes Failed [u1, u2] [u6]; _NO_DEFLT_ } _N_ #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString.hi b/ghc/lib/ghc/PackedString.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString.lhs b/ghc/lib/ghc/PackedString.lhs
new file mode 100644
index 0000000000..9612dddfa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString.lhs
@@ -0,0 +1,97 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1993-1994
+%
+\section[PackedString]{Packed strings}
+
+A non-weird interface to the wired-in @PackedString@ type.
+
+\begin{code}
+module PackedString (
+ PackedString(..),
+
+ packString,
+ packCString,
+ packCBytes,
+--NO: packStringForC,
+ nilPS,
+ consPS,
+ byteArrayToPS,
+ psToByteArray,
+
+ unpackPS,
+--NO: unpackPS#,
+ putPS,
+
+ implode, explode, -- alt. names for packString, unpackPS
+
+ headPS,
+ tailPS,
+ nullPS,
+ appendPS,
+ lengthPS,
+ indexPS,
+ mapPS,
+ filterPS,
+ foldlPS,
+ foldrPS,
+ takePS,
+ dropPS,
+ splitAtPS,
+ takeWhilePS,
+ dropWhilePS,
+ spanPS,
+ breakPS,
+ linesPS,
+ wordsPS,
+ reversePS,
+ concatPS,
+
+ substrPS,
+
+ -- to make interface self-sufficient
+ _PackedString, -- abstract!
+ _FILE
+ ) where
+
+type PackedString = _PackedString
+
+packString = _packString
+packCString = _packCString
+
+packCBytes = _packCBytes
+--packStringForC = _packStringForC
+nilPS = _nilPS
+consPS = _consPS
+byteArrayToPS = _byteArrayToPS
+psToByteArray = _psToByteArray
+
+unpackPS = _unpackPS
+putPS = _putPS
+
+implode = _packString -- alt. names
+explode = _unpackPS
+
+headPS = _headPS
+tailPS = _tailPS
+nullPS = _nullPS
+appendPS = _appendPS
+lengthPS = _lengthPS
+indexPS = _indexPS
+mapPS = _mapPS
+filterPS = _filterPS
+foldlPS = _foldlPS
+foldrPS = _foldrPS
+takePS = _takePS
+dropPS = _dropPS
+splitAtPS = _splitAtPS
+takeWhilePS = _takeWhilePS
+dropWhilePS = _dropWhilePS
+spanPS = _spanPS
+breakPS = _breakPS
+linesPS = _linesPS
+wordsPS = _wordsPS
+reversePS = _reversePS
+concatPS = _concatPS
+
+substrPS = _substrPS
+\end{code}
diff --git a/ghc/lib/ghc/PackedString_mc.hi b/ghc/lib/ghc/PackedString_mc.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_mc.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString_mg.hi b/ghc/lib/ghc/PackedString_mg.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_mg.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString_mp.hi b/ghc/lib/ghc/PackedString_mp.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_mp.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString_mr.hi b/ghc/lib/ghc/PackedString_mr.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_mr.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString_mt.hi b/ghc/lib/ghc/PackedString_mt.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_mt.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString_p.hi b/ghc/lib/ghc/PackedString_p.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_p.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/PackedString_t.hi b/ghc/lib/ghc/PackedString_t.hi
new file mode 100644
index 0000000000..e772849aa0
--- /dev/null
+++ b/ghc/lib/ghc/PackedString_t.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PackedString where
+import PreludeArray(_ByteArray)
+import PreludePS(_PackedString)
+import Stdio(_FILE)
+type PackedString = _PackedString
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _appendPS _N_ #-}
+breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _breakPS _N_ #-}
+byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _concatPS _N_ #-}
+consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _consPS _N_ #-}
+dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _dropWhilePS _N_ #-}
+explode :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _filterPS _N_ #-}
+foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldlPS _N_ #-}
+foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _foldrPS _N_ #-}
+headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _headPS _N_ #-}
+implode :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _lengthPS _N_ #-}
+linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _linesPS _N_ #-}
+mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _mapPS _N_ #-}
+nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _nullPS _N_ #-}
+packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _packString _N_ #-}
+psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _psToByteArray _N_ #-}
+putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _reversePS _N_ #-}
+spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _spanPS _N_ #-}
+splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _splitAtPS _N_ #-}
+substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _tailPS _N_ #-}
+takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _IF_ARGS_ 0 2 CX 6 \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _takeWhilePS _N_ #-}
+unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _unpackPS _N_ #-}
+wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludePS _wordsPS _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty.hi b/ghc/lib/ghc/Pretty.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty.lhs b/ghc/lib/ghc/Pretty.lhs
new file mode 100644
index 0000000000..f4169255ce
--- /dev/null
+++ b/ghc/lib/ghc/Pretty.lhs
@@ -0,0 +1,439 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+%
+\section[Pretty]{Pretty-printing data type}
+
+\begin{code}
+#if defined(COMPILING_GHC)
+# include "HsVersions.h"
+#else
+# define FAST_STRING String
+# define _LENGTH_ length
+#endif
+
+module Pretty (
+ Pretty(..),
+
+#if defined(COMPILING_GHC)
+ PprStyle(..),
+ prettyToUn,
+ codeStyle, -- UNUSED: stySwitch,
+#endif
+ ppNil, ppStr, ppPStr, ppChar, ppInt, ppInteger,
+ ppFloat, ppDouble,
+#if __GLASGOW_HASKELL__ >= 23
+ -- may be able to *replace* ppDouble
+ ppRational,
+#endif
+ ppSP, pp'SP, ppLbrack, ppRbrack, ppLparen, ppRparen,
+ ppSemi, ppComma, ppEquals,
+
+ ppCat, ppBeside, ppBesides, ppAbove, ppAboves,
+ ppNest, ppSep, ppHang, ppInterleave, ppIntersperse,
+ ppShow,
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+ ppAppendFile,
+#endif
+
+ -- abstract type, to complete the interface...
+ PrettyRep(..), CSeq, Delay
+#if defined(COMPILING_GHC)
+ , GlobalSwitch, Unpretty(..)
+#endif
+ ) where
+
+import CharSeq
+#if defined(COMPILING_GHC)
+import Unpretty ( Unpretty(..) )
+import CmdLineOpts ( GlobalSwitch )
+#endif
+\end{code}
+
+Based on John Hughes's pretty-printing library. For now, that code
+and notes for it are in files \tr{pp-rjmh*} (ToDo: rm).
+
+%************************************************
+%* *
+ \subsection{The interface}
+%* *
+%************************************************
+
+\begin{code}
+ppNil :: Pretty
+ppSP, pp'SP, ppLbrack, ppRbrack, ppLparen, ppRparen, ppSemi, ppComma, ppEquals :: Pretty
+
+ppStr :: [Char] -> Pretty
+ppPStr :: FAST_STRING -> Pretty
+ppChar :: Char -> Pretty
+ppInt :: Int -> Pretty
+ppInteger :: Integer -> Pretty
+ppDouble :: Double -> Pretty
+ppFloat :: Float -> Pretty
+#if __GLASGOW_HASKELL__ >= 23
+ppRational :: Rational -> Pretty
+#endif
+
+ppBeside :: Pretty -> Pretty -> Pretty
+ppBesides :: [Pretty] -> Pretty
+ppBesideSP :: Pretty -> Pretty -> Pretty
+ppCat :: [Pretty] -> Pretty -- i.e., ppBesidesSP
+
+ppAbove :: Pretty -> Pretty -> Pretty
+ppAboves :: [Pretty] -> Pretty
+
+ppInterleave :: Pretty -> [Pretty] -> Pretty
+ppIntersperse :: Pretty -> [Pretty] -> Pretty -- no spaces between, no ppSep
+ppSep :: [Pretty] -> Pretty
+ppHang :: Pretty -> Int -> Pretty -> Pretty
+ppNest :: Int -> Pretty -> Pretty
+
+ppShow :: Int -> Pretty -> [Char]
+
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+# if __GLASGOW_HASKELL__ < 23
+# define _FILE _Addr
+# endif
+ppAppendFile :: _FILE -> Int -> Pretty -> PrimIO ()
+#endif
+\end{code}
+
+%************************************************
+%* *
+ \subsection{The representation}
+%* *
+%************************************************
+
+\begin{code}
+type Pretty = Int -- The width to print in
+ -> Bool -- True => vertical context
+ -> PrettyRep
+
+data PrettyRep
+ = MkPrettyRep CSeq -- The text
+ (Delay Int) -- No of chars in last line
+ Bool -- True if empty object
+ Bool -- Fits on a single line in specified width
+
+data Delay a = MkDelay a
+
+forceDel (MkDelay _) r = r
+
+forceBool True r = r
+forceBool False r = r
+
+forceInfo ll emp sl r = forceDel ll (forceBool emp (forceBool sl r))
+
+ppShow width p
+ = case (p width False) of
+ MkPrettyRep seq ll emp sl -> cShow seq
+
+#if defined(COMPILING_GHC) && __GLASGOW_HASKELL__ >= 22
+ppAppendFile f width p
+ = case (p width False) of
+ MkPrettyRep seq ll emp sl -> cAppendFile f seq
+#endif
+
+ppNil width is_vert = MkPrettyRep cNil (MkDelay 0) True (width >= 0)
+ -- Doesn't fit if width < 0, otherwise, ppNil
+ -- will make ppBesides always return True.
+
+ppStr s width is_vert = MkPrettyRep (cStr s) (MkDelay ls) False (width >= ls)
+ where ls = length s
+ppPStr s width is_vert = MkPrettyRep (cPStr s) (MkDelay ls) False (width >= ls)
+ where ls = _LENGTH_ s
+ppChar c width is_vert = MkPrettyRep (cCh c) (MkDelay 1) False (width >= 1)
+
+ppInt n width is_vert = MkPrettyRep (cStr s) (MkDelay ls) False (width >= ls)
+ where s = show n; ls = length s
+
+ppInteger n = ppStr (show n)
+ppDouble n = ppStr (show n)
+ppFloat n = ppStr (show n)
+#if __GLASGOW_HASKELL__ >= 23
+--ppRational n = ppStr (_showRational 30 n)
+ppRational n = ppStr (show (fromRationalX n)) -- _showRational 30 n)
+#endif
+
+ppSP = ppChar ' '
+pp'SP = ppStr ", "
+ppLbrack = ppChar '['
+ppRbrack = ppChar ']'
+ppLparen = ppChar '('
+ppRparen = ppChar ')'
+ppSemi = ppChar ';'
+ppComma = ppChar ','
+ppEquals = ppChar '='
+
+ppInterleave sep ps = ppSep (pi ps)
+ where
+ pi [] = []
+ pi [x] = [x]
+ pi (x:xs) = (ppBeside x sep) : pi xs
+\end{code}
+
+ToDo: this could be better: main pt is: no extra spaces in between.
+
+\begin{code}
+ppIntersperse sep ps = ppBesides (pi ps)
+ where
+ pi [] = []
+ pi [x] = [x]
+ pi (x:xs) = (ppBeside x sep) : pi xs
+\end{code}
+
+Laziness is important in @ppBeside@. If the first thing is not a
+single line it will return @False@ for the single-line boolean without
+laying out the second.
+
+\begin{code}
+ppBeside p1 p2 width is_vert
+ = case (p1 width False) of
+ MkPrettyRep seq1 (MkDelay ll1) emp1 sl1 ->
+ MkPrettyRep (seq1 `cAppend` (cIndent ll1 seq2))
+ (MkDelay (ll1 + ll2))
+ (emp1 && emp2)
+ ((width >= 0) && (sl1 && sl2))
+ -- This sequence of (&&)'s ensures that ppBeside
+ -- returns a False for sl as soon as possible.
+ where -- NB: for case alt
+ seq2 = forceInfo x_ll2 emp2 sl2 x_seq2
+ MkDelay ll2 = x_ll2
+ MkPrettyRep x_seq2 x_ll2 emp2 sl2 = p2 (width-ll1) False
+ -- ToDo: if emp{1,2} then we really
+ -- should be passing on "is_vert" to p{2,1}.
+
+ppBesides [] = ppNil
+ppBesides ps = foldr1 ppBeside ps
+\end{code}
+
+@ppBesideSP@ puts two things beside each other separated by a space.
+
+\begin{code}
+ppBesideSP p1 p2 width is_vert
+ = case (p1 width False) of
+ MkPrettyRep seq1 (MkDelay ll1) emp1 sl1 ->
+ MkPrettyRep (seq1 `cAppend` (sp `cAppend` (cIndent li seq2)))
+ (MkDelay (li + ll2))
+ (emp1 && emp2)
+ ((width >= wi) && (sl1 && sl2))
+ where -- NB: for case alt
+ seq2 = forceInfo x_ll2 emp2 sl2 x_seq2
+ MkDelay ll2 = x_ll2
+ MkPrettyRep x_seq2 x_ll2 emp2 sl2 = p2 (width-li) False
+ li, wi :: Int
+ li = if emp1 then 0 else ll1+1
+ wi = if emp1 then 0 else 1
+ sp = if emp1 || emp2 then cNil else (cCh ' ')
+\end{code}
+
+@ppCat@ is the name I (WDP) happen to have been using for @ppBesidesSP@.
+
+\begin{code}
+ppCat [] = ppNil
+ppCat ps = foldr1 ppBesideSP ps
+\end{code}
+
+\begin{code}
+ppAbove p1 p2 width is_vert
+ = case (p1 width True) of
+ MkPrettyRep seq1 (MkDelay ll1) emp1 sl1 ->
+ MkPrettyRep (seq1 `cAppend` (nl `cAppend` seq2))
+ (MkDelay ll2)
+ -- ToDo: make ll depend on empties?
+ (emp1 && emp2)
+ False
+ where -- NB: for case alt
+ nl = if emp1 || emp2 then cNil else cNL
+ seq2 = forceInfo x_ll2 emp2 sl2 x_seq2
+ MkDelay ll2 = x_ll2 -- Don't "optimise" this away!
+ MkPrettyRep x_seq2 x_ll2 emp2 sl2 = p2 width True
+ -- ToDo: ditto about passing is_vert if empties
+
+ppAboves [] = ppNil
+ppAboves ps = foldr1 ppAbove ps
+\end{code}
+
+\begin{code}
+ppNest n p width False = p width False
+ppNest n p width True
+ = case (p (width-n) True) of
+ MkPrettyRep seq (MkDelay ll) emp sl ->
+ MkPrettyRep (cIndent n seq) (MkDelay (ll+n)) emp sl
+\end{code}
+
+The length-check below \tr{(ll1+ll2+1) <= width} should really check for
+max widths not the width of the last line.
+
+\begin{code}
+ppHang p1 n p2 width is_vert -- This is a little bit stricter than it could
+ -- be made with a little more effort.
+ -- Eg the output always starts with seq1
+ = case (p1 width False) of
+ MkPrettyRep seq1 (MkDelay ll1) emp1 sl1 ->
+ if emp1 then
+ p2 width is_vert
+ else
+ if (ll1 <= n) || sl2 then -- very ppBesideSP'ish
+ -- Hang it if p1 shorter than indent or if it doesn't fit
+ MkPrettyRep (seq1 `cAppend` ((cCh ' ') `cAppend` (cIndent (ll1+1) seq2)))
+ (MkDelay (ll1 + 1 + ll2))
+ False
+ (sl1 && sl2)
+ else
+ -- Nest it (pretty ppAbove-ish)
+ MkPrettyRep (seq1 `cAppend` (cNL `cAppend` (cIndent n seq2')))
+ (MkDelay ll2') -- ToDo: depend on empties
+ False
+ False
+ where -- NB: for case alt
+ seq2 = forceInfo x_ll2 emp2 sl2 x_seq2
+ MkDelay ll2 = x_ll2
+ MkPrettyRep x_seq2 x_ll2 emp2 sl2 = p2 (width-(ll1+1)) False
+ -- ToDo: more "is_vert if empty" stuff
+
+ seq2' = forceInfo x_ll2' emp2' sl2' x_seq2'
+ MkDelay ll2' = x_ll2' -- Don't "optimise" this away!
+ MkPrettyRep x_seq2' x_ll2' emp2' sl2' = p2 (width-n) False -- ToDo: True?
+\end{code}
+
+\begin{code}
+ppSep [] width is_vert = ppNil width is_vert
+ppSep [p] width is_vert = p width is_vert
+
+-- CURRENT, but BAD. Quadratic behaviour on the perfectly reasonable
+-- ppSep [a, ppSep[b, ppSep [c, ... ]]]
+
+ppSep ps width is_vert
+ = case (ppCat ps width is_vert) of
+ MkPrettyRep seq x_ll emp sl ->
+ if sl then -- Fits on one line
+ MkPrettyRep seq x_ll emp sl
+ else
+ ppAboves ps width is_vert -- Takes several lines
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Outputable-print]{Pretty-printing stuff}
+%* *
+%************************************************************************
+
+ToDo: this is here for no-original-name reasons (mv?).
+
+There is no clearly definitive list of @PprStyles@; I suggest the
+following:
+
+\begin{code}
+#if defined(COMPILING_GHC)
+ -- to the end of file
+
+data PprStyle
+ = PprForUser -- Pretty-print in a way that will
+ -- make sense to the ordinary user;
+ -- must be very close to Haskell
+ -- syntax, etc. ToDo: how diff is
+ -- this from what pprInterface must
+ -- do?
+ | PprDebug -- Standard debugging output
+ | PprShowAll -- Debugging output which leaves
+ -- nothing to the imagination
+ | PprInterface -- Interface generation
+ (GlobalSwitch -> Bool) -- (we can look at cmd-line flags)
+ | PprForC -- must print out C-acceptable names
+ (GlobalSwitch -> Bool) -- (ditto)
+ | PprUnfolding -- for non-interface intermodule info
+ (GlobalSwitch -> Bool) -- the compiler writes/reads
+ | PprForAsm -- must print out assembler-acceptable names
+ (GlobalSwitch -> Bool) -- (ditto)
+ Bool -- prefix CLabel with underscore?
+ (String -> String) -- format AsmTempLabel
+\end{code}
+
+The following test decides whether or not we are actually generating
+code (either C or assembly).
+\begin{code}
+codeStyle :: PprStyle -> Bool
+codeStyle (PprForC _) = True
+codeStyle (PprForAsm _ _ _) = True
+codeStyle _ = False
+
+{- UNUSED:
+stySwitch :: PprStyle -> GlobalSwitch -> Bool
+stySwitch (PprInterface sw) = sw
+stySwitch (PprForC sw) = sw
+stySwitch (PprForAsm sw _ _) = sw
+-}
+\end{code}
+
+Orthogonal to these printing styles are (possibly) some command-line
+flags that affect printing (often carried with the style). The most
+likely ones are variations on how much type info is shown.
+
+\begin{code}
+prettyToUn :: Pretty -> Unpretty
+
+prettyToUn p
+ = case (p 999999{-totally bogus width-} False{-also invented-}) of
+ MkPrettyRep seq ll emp sl -> seq
+
+#endif {-COMPILING_GHC-}
+\end{code}
+
+-----------------------------------
+\begin{code}
+-- from Lennart
+fromRationalX :: (RealFloat a) => Rational -> a
+
+fromRationalX r =
+ let
+ h = ceiling (huge `asTypeOf` x)
+ b = toInteger (floatRadix x)
+ x = fromRat 0 r
+ fromRat e0 r' =
+ let d = denominator r'
+ n = numerator r'
+ in if d > h then
+ let e = integerLogBase b (d `div` h) + 1
+ in fromRat (e0-e) (n % (d `div` (b^e)))
+ else if abs n > h then
+ let e = integerLogBase b (abs n `div` h) + 1
+ in fromRat (e0+e) ((n `div` (b^e)) % d)
+ else
+ scaleFloat e0 (fromRational r')
+ in x
+
+-- Compute the discrete log of i in base b.
+-- Simplest way would be just divide i by b until it's smaller then b, but that would
+-- be very slow! We are just slightly more clever.
+integerLogBase :: Integer -> Integer -> Int
+integerLogBase b i =
+ if i < b then
+ 0
+ else
+ -- Try squaring the base first to cut down the number of divisions.
+ let l = 2 * integerLogBase (b*b) i
+
+ doDiv :: Integer -> Int -> Int
+ doDiv j k = if j < b then k else doDiv (j `div` b) (k+1)
+ in
+ doDiv (i `div` (b^l)) l
+
+
+------------
+
+-- Compute smallest and largest floating point values.
+{-
+tiny :: (RealFloat a) => a
+tiny =
+ let (l, _) = floatRange x
+ x = encodeFloat 1 (l-1)
+ in x
+-}
+
+huge :: (RealFloat a) => a
+huge =
+ let (_, u) = floatRange x
+ d = floatDigits x
+ x = encodeFloat (floatRadix x ^ d - 1) (u - d)
+ in x
+\end{code}
diff --git a/ghc/lib/ghc/Pretty_mc.hi b/ghc/lib/ghc/Pretty_mc.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_mc.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty_mg.hi b/ghc/lib/ghc/Pretty_mg.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_mg.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty_mp.hi b/ghc/lib/ghc/Pretty_mp.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_mp.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty_mr.hi b/ghc/lib/ghc/Pretty_mr.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_mr.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty_mt.hi b/ghc/lib/ghc/Pretty_mt.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_mt.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty_p.hi b/ghc/lib/ghc/Pretty_p.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_p.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Pretty_t.hi b/ghc/lib/ghc/Pretty_t.hi
new file mode 100644
index 0000000000..f09119b7fe
--- /dev/null
+++ b/ghc/lib/ghc/Pretty_t.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+import CharSeq(CSeq)
+import PreludeRatio(Ratio(..))
+data CSeq {-# GHC_PRAGMA CNil | CAppend CSeq CSeq | CIndent Int CSeq | CNewline | CStr [Char] | CCh Char | CInt Int #-}
+data Delay a {-# GHC_PRAGMA MkDelay a #-}
+type Pretty = Int -> Bool -> PrettyRep
+data PrettyRep = MkPrettyRep CSeq (Delay Int) Bool Bool
+pp'SP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ Pretty ppStr [ _NOREP_S_ ", " ] _N_ #-}
+ppAbove :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppAboves :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppAbove, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppBeside :: (Int -> Bool -> PrettyRep) -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 1120 _N_ _S_ "SLLA" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppBesides :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: [Int -> Bool -> PrettyRep]) -> case u0 of { _ALG_ (:) (u1 :: Int -> Bool -> PrettyRep) (u2 :: [Int -> Bool -> PrettyRep]) -> _APP_ _TYAPP_ _ORIG_ PreludeList foldr1 { (Int -> Bool -> PrettyRep) } [ _ORIG_ Pretty ppBeside, u0 ]; _NIL_ -> _ORIG_ Pretty ppNil; _NO_DEFLT_ } _N_ #-}
+ppCat :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+ppChar :: Char -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppComma :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppDouble :: Double -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppEquals :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppFloat :: Float -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 210 _N_ _N_ _N_ _N_ #-}
+ppHang :: (Int -> Bool -> PrettyRep) -> Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 5 _U_ 12222 _N_ _S_ "SLLLL" _N_ _N_ #-}
+ppInt :: Int -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 110 _N_ _S_ "LLA" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppInteger :: Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppInterleave :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppIntersperse :: (Int -> Bool -> PrettyRep) -> [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
+ppLbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppLparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppNest :: Int -> (Int -> Bool -> PrettyRep) -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LSLE" _N_ _N_ #-}
+ppNil :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "LA" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppPStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ppRational :: Ratio Integer -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 110 _N_ _N_ _N_ _N_ #-}
+ppRbrack :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppRparen :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSP :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSemi :: Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _N_ _N_ #-}
+ppSep :: [Int -> Bool -> PrettyRep] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+ppShow :: Int -> (Int -> Bool -> PrettyRep) -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+ppStr :: [Char] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 210 _N_ _S_ "LLA" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Readline.hi b/ghc/lib/ghc/Readline.hi
new file mode 100644
index 0000000000..a635690307
--- /dev/null
+++ b/ghc/lib/ghc/Readline.hi
@@ -0,0 +1,44 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Readline where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type RlCallbackFunction = Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+addHistory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readline :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlAddDefun :: [Char] -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlBindKey :: Int -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetEnd :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetLineBuffer :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetMark :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetPoint :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetReadlineName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlInitialize :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPendingInput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPrompt :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetDone :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+rlSetEnd :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetLineBuffer :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlSetMark :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetPoint :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetReadlineName :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Readline.lhs b/ghc/lib/ghc/Readline.lhs
new file mode 100644
index 0000000000..e3eeece840
--- /dev/null
+++ b/ghc/lib/ghc/Readline.lhs
@@ -0,0 +1,325 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+% Last Modified: Wed Jul 19 13:04:53 1995
+% Darren J Moffat <moffatd@dcs.gla.ac.uk>
+\section[Readline]{GNU Readline Library Bindings}
+
+This module attempts to provide a better line based editing facility
+for Haskell programmers by providing access to the GNU Readline
+library. Related to this are bindings for the GNU History library
+which can be found in History.
+
+
+\begin{code}
+module Readline (
+ rlInitialize,
+ readline, addHistory,
+
+ rlBindKey, rlAddDefun,
+ RlCallbackFunction(..),
+
+ rlGetLineBuffer, rlSetLineBuffer,
+ rlGetPoint, rlSetPoint,
+ rlGetEnd, rlSetEnd,
+ rlGetMark, rlSetMark,
+ rlSetDone,
+ rlPendingInput,
+
+ rlPrompt, rlTerminalName, rlSetReadlineName, rlGetReadlineName
+
+-- rlInStream, rlOutStream
+
+-- rlStartupHook
+
+) where
+
+import PreludeGlaMisc
+import PreludeGlaST
+import LibSystem
+
+
+--#include <readline/readline.h>
+
+type KeyCode = Int
+
+type RlCallbackFunction =
+ (Int -> -- Numeric Argument
+ KeyCode -> -- KeyCode of pressed Key
+ IO Int)
+\end{code}
+
+%***************************************************************************
+%* *
+\subsection[Readline-Functions]{Main Readline Functions}
+%* *
+%***************************************************************************
+\begin{code}
+
+readline :: String -> -- Prompt String
+ IO String -- Returned line
+readline prompt =
+--ToDo: Get the "Live register in _casm_GC_ " bug fixed
+-- this stops us passing the prompt string to readline directly :-(
+-- _casm_GC_ ``%r = readline %0;'' prompt `thenPrimIO` \ litstr ->
+
+ _casm_ ``rl_prompt_hack = (char*)realloc(rl_prompt_hack, %1);
+ strcpy (rl_prompt_hack,%0);''
+ prompt (length prompt) `thenPrimIO` \ () ->
+ _casm_GC_ ``%r = readline (rl_prompt_hack);'' `thenPrimIO` \ litstr ->
+ if (litstr == ``NULL'') then
+ fail "Readline has read EOF"
+ else (
+ let str = _unpackPS (_packCString litstr) in
+ _casm_ ``free %0;'' litstr `thenPrimIO` \ () ->
+ return str
+ )
+
+
+addHistory :: String -> -- String to enter in history
+ IO ()
+addHistory str = primIOToIO (_ccall_ add_history str)
+
+
+rlBindKey :: KeyCode -> -- Key to Bind to
+ RlCallbackFunction -> -- Function to exec on execution
+ IO ()
+rlBindKey key cback =
+ if (0 > key) || (key > 255) then
+ fail "Invalid ASCII Key Code, must be in range 0.255"
+ else
+ addCbackEntry (key,cback) `seqPrimIO`
+ _casm_ `` rl_bind_key((KeyCode)%0,&genericRlCback); ''
+ key `thenPrimIO` \ () ->
+ return ()
+
+\end{code}
+
+i.e. add the (KeyCode,RlCallbackFunction) key to the assoc. list and register
+the generic callback for this KeyCode.
+
+The entry point that $genericRlCback$ calls would then read the
+global variables $current_i$ and $current_kc$ and do a lookup:
+
+\begin{code}
+rlAddDefun :: String -> -- Function Name
+ RlCallbackFunction -> -- Function to call
+ KeyCode -> -- Key to bind to, or -1 for no bind
+ IO ()
+rlAddDefun name cback key =
+ if (0 > key) || (key > 255) then
+ fail "Invalid ASCII Key Code, must be in range 0..255"
+ else
+ addCbackEntry (key, cback) `seqPrimIO`
+ _casm_ ``rl_add_defun (%0, &genericRlCback, (KeyCode)%1);''
+ name key `thenPrimIO` \ () ->
+ return ()
+
+\end{code}
+
+
+The C function $genericRlCallback$ puts the callback arguments into
+global variables and enters the Haskell world through the
+$haskellRlEntry$ function. Before exiting, the Haskell function will
+deposit its result in the global varariable $rl_return$.
+
+In the Haskell action that is invoked via $enterStablePtr$, a match
+between the Keycode in $current_kc$ and the Haskell callback needs to
+be made. To essentially keep the same assoc. list of (KeyCode,cback
+function) as Readline does, we make use of yet another global variable
+$cbackList$:
+
+\begin{code}
+
+createCbackList :: [(KeyCode,RlCallbackFunction)] -> PrimIO ()
+createCbackList ls =
+#ifndef __PARALLEL_HASKELL__
+ makeStablePtr ls `thenPrimIO` \ stable_ls ->
+ _casm_ `` cbackList=(StgStablePtr)%0; '' stable_ls
+#else
+ error "createCbackList: not available for Parallel Haskell"
+#endif
+
+getCbackList :: PrimIO [(KeyCode,RlCallbackFunction)]
+getCbackList =
+#ifndef __PARALLEL_HASKELL__
+ _casm_ `` %r=(StgStablePtr)cbackList; '' `thenPrimIO` \ stable_ls ->
+ deRefStablePtr stable_ls
+#else
+ error "getCbackList: not available for Parallel Haskell"
+#endif
+
+setCbackList :: [(KeyCode,RlCallbackFunction)] -> PrimIO ()
+setCbackList ls =
+#ifndef __PARALLEL_HASKELL__
+ _casm_ `` %r=(StgStablePtr)cbackList; '' `thenPrimIO` \ old_stable_ls ->
+ freeStablePtr old_stable_ls `seqPrimIO`
+ createCbackList ls
+#else
+ error "setCbackList: not available for Parallel Haskell"
+#endif
+
+addCbackEntry :: (KeyCode,RlCallbackFunction) -> PrimIO ()
+addCbackEntry entry =
+ getCbackList `thenPrimIO` \ ls ->
+ setCbackList (entry:ls)
+
+\end{code}
+
+The above functions allows us to query and augment the assoc. list in
+Haskell.
+
+
+\begin{code}
+
+invokeRlCback :: PrimIO ()
+invokeRlCback =
+ _casm_ `` %r=(KeyCode)current_kc; '' `thenPrimIO` \ kc ->
+ _casm_ `` %r=(int)current_narg; '' `thenPrimIO` \ narg ->
+ getCbackList `thenPrimIO` \ ls ->
+ (case (dropWhile (\ (key,_) -> kc/=key) ls) of
+ [] -> -- no match
+ returnPrimIO (-1)
+ ((_,cback):_) ->
+ ioToPrimIO (cback narg kc)
+ ) `thenPrimIO` \ ret_val ->
+ _casm_ `` rl_return=(int)%0; '' ret_val `thenPrimIO` \ () ->
+ returnPrimIO ()
+
+\end{code}
+
+Finally, we need to initialise this whole, ugly machinery:
+
+\begin{code}
+
+initRlCbacks :: PrimIO ()
+initRlCbacks =
+#ifndef __PARALLEL_HASKELL__
+ createCbackList [] `seqPrimIO`
+ makeStablePtr (invokeRlCback) `thenPrimIO` \ stable_f ->
+ _casm_ `` haskellRlEntry=(StgStablePtr)%0; '' stable_f `thenPrimIO` \ () ->
+ returnPrimIO ()
+#else
+ error "initRlCbacks: not available for Parallel Haskell"
+#endif
+
+\end{code}
+
+
+%***************************************************************************
+%* *
+\subsection[Readline-Globals]{Global Readline Variables}
+%* *
+%***************************************************************************
+
+These are the global variables required by the readline lib. Need to
+find a way of making these read/write from the Haskell side. Should
+they be in the IO Monad, should they be Mutable Variables?
+
+\begin{code}
+
+rlGetLineBuffer :: IO String
+rlGetLineBuffer =
+ _casm_ ``%r = rl_line_buffer;'' `thenPrimIO` \ litstr ->
+ return (_unpackPS (_packCString litstr))
+
+rlSetLineBuffer :: String -> IO ()
+rlSetLineBuffer str = primIOToIO (_casm_ ``rl_line_buffer = %0;'' str)
+
+
+rlGetPoint :: IO Int
+rlGetPoint = primIOToIO (_casm_ ``%r = rl_point;'')
+
+rlSetPoint :: Int -> IO ()
+rlSetPoint point = primIOToIO (_casm_ ``rl_point = %0;'' point)
+
+rlGetEnd :: IO Int
+rlGetEnd = primIOToIO (_casm_ ``%r = rl_end;'')
+
+rlSetEnd :: Int -> IO ()
+rlSetEnd end = primIOToIO (_casm_ ``rl_end = %0;'' end)
+
+rlGetMark :: IO Int
+rlGetMark = primIOToIO (_casm_ ``%r = rl_mark;'')
+
+rlSetMark :: Int -> IO ()
+rlSetMark mark = primIOToIO (_casm_ ``rl_mark = %0;'' mark)
+
+rlSetDone :: Bool -> IO ()
+rlSetDone True = primIOToIO (_casm_ ``rl_done = %0;'' 1)
+rlSetDone False = primIOToIO (_casm_ ``rl_done = %0;'' 0)
+
+rlPendingInput :: KeyCode -> IO ()
+rlPendingInput key = primIOToIO (_casm_ ``rl_pending_input = %0;'' key)
+
+rlPrompt :: IO String
+rlPrompt =
+ _casm_ ``%r = rl_readline_name;'' `thenPrimIO` \ litstr ->
+ return (_unpackPS (_packCString litstr))
+
+rlTerminalName :: IO String
+rlTerminalName =
+ _casm_ ``%r = rl_terminal_name;'' `thenPrimIO` \ litstr ->
+ return (_unpackPS (_packCString litstr))
+
+
+rlGetReadlineName :: IO String
+rlGetReadlineName =
+ _casm_ ``%r = rl_readline_name;'' `thenPrimIO` \ litstr ->
+ return (_unpackPS (_packCString litstr))
+
+rlSetReadlineName :: String -> IO ()
+rlSetReadlineName str = primIOToIO (
+ _casm_ ``rl_readline_name = %0;'' str)
+
+\end{code}
+
+\begin{verbatim}
+--
+-- The following two were taken from PreludeStdIO stdin/stdout
+--
+rlInStream :: Handle
+rlInStream = unsafePerformPrimIO (
+ newMVar `thenPrimIO` \ handle ->
+ _ccall_ getLock (``rl_instream''::_Addr) 0 `thenPrimIO` \ rc ->
+ (case rc of
+ 0 -> putMVar handle _ClosedHandle
+ 1 -> putMVar handle (_ReadHandle ``rl_instream'' Nothing False)
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ putMVar handle (_ErrorHandle ioError)
+ ) `seqPrimIO`
+ returnPrimIO handle
+ )
+
+
+rlOutStream :: Handle
+rlOutStream = unsafePerformPrimIO (
+ newMVar `thenPrimIO` \ handle ->
+ _ccall_ getLock (``rl_outstream''::_Addr) 1 `thenPrimIO` \ rc ->
+ (case rc of
+ 0 -> putMVar handle _ClosedHandle
+ 1 -> putMVar handle (_WriteHandle ``rl_outstream'' Nothing False)
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ putMVar handle (_ErrorHandle ioError)
+ ) `seqPrimIO`
+ returnPrimIO handle
+ )
+
+\end{verbatim}
+
+
+\begin{code}
+
+-- rlStartupHook :: RlCallBackFunction -> IO ()
+
+rlInitialize :: IO ()
+rlInitialize =
+ getProgName >>= \ pname ->
+ rlSetReadlineName pname >>
+ _casm_ ``rl_prompt_hack = (char*)malloc(1);'' `thenPrimIO` \ () ->
+ primIOToIO (initRlCbacks)
+
+\end{code}
+
+
+
diff --git a/ghc/lib/ghc/Readline_mc.hi b/ghc/lib/ghc/Readline_mc.hi
new file mode 100644
index 0000000000..a635690307
--- /dev/null
+++ b/ghc/lib/ghc/Readline_mc.hi
@@ -0,0 +1,44 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Readline where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type RlCallbackFunction = Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+addHistory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readline :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlAddDefun :: [Char] -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlBindKey :: Int -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetEnd :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetLineBuffer :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetMark :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetPoint :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetReadlineName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlInitialize :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPendingInput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPrompt :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetDone :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+rlSetEnd :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetLineBuffer :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlSetMark :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetPoint :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetReadlineName :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Readline_mg.hi b/ghc/lib/ghc/Readline_mg.hi
new file mode 100644
index 0000000000..a635690307
--- /dev/null
+++ b/ghc/lib/ghc/Readline_mg.hi
@@ -0,0 +1,44 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Readline where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type RlCallbackFunction = Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+addHistory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readline :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlAddDefun :: [Char] -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlBindKey :: Int -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetEnd :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetLineBuffer :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetMark :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetPoint :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetReadlineName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlInitialize :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPendingInput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPrompt :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetDone :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+rlSetEnd :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetLineBuffer :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlSetMark :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetPoint :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetReadlineName :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Readline_mp.hi b/ghc/lib/ghc/Readline_mp.hi
new file mode 100644
index 0000000000..5a2e97200e
--- /dev/null
+++ b/ghc/lib/ghc/Readline_mp.hi
@@ -0,0 +1,44 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Readline where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type RlCallbackFunction = Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+addHistory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readline :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlAddDefun :: [Char] -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 0011 _N_ _S_ "AAU(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlBindKey :: Int -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 101 _N_ _S_ "U(P)AU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetEnd :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetLineBuffer :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetMark :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetPoint :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetReadlineName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlInitialize :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPendingInput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPrompt :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetDone :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+rlSetEnd :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetLineBuffer :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlSetMark :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetPoint :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetReadlineName :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Readline_p.hi b/ghc/lib/ghc/Readline_p.hi
new file mode 100644
index 0000000000..a635690307
--- /dev/null
+++ b/ghc/lib/ghc/Readline_p.hi
@@ -0,0 +1,44 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Readline where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type RlCallbackFunction = Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+addHistory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readline :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlAddDefun :: [Char] -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlBindKey :: Int -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetEnd :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetLineBuffer :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetMark :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetPoint :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetReadlineName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlInitialize :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPendingInput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPrompt :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetDone :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+rlSetEnd :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetLineBuffer :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlSetMark :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetPoint :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetReadlineName :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Readline_t.hi b/ghc/lib/ghc/Readline_t.hi
new file mode 100644
index 0000000000..a635690307
--- /dev/null
+++ b/ghc/lib/ghc/Readline_t.hi
@@ -0,0 +1,44 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Readline where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type RlCallbackFunction = Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+addHistory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readline :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlAddDefun :: [Char] -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlBindKey :: Int -> (Int -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetEnd :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetLineBuffer :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlGetMark :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetPoint :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+rlGetReadlineName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlInitialize :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPendingInput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlPrompt :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetDone :: Bool -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_ #-}
+rlSetEnd :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetLineBuffer :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlSetMark :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetPoint :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rlSetReadlineName :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+rlTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Regex.hi b/ghc/lib/ghc/Regex.hi
new file mode 100644
index 0000000000..b12d44e586
--- /dev/null
+++ b/ghc/lib/ghc/Regex.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Regex where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+re_compile_pattern :: _PackedString -> Bool -> Bool -> _State _RealWorld -> (PatBuffer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "SEEU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match :: PatBuffer -> _PackedString -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 12111 _N_ _S_ "U(P)SU(P)EU(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 7 _U_ 1222211 _N_ _S_ "U(P)SSU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search :: PatBuffer -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 6 _U_ 122211 _N_ _S_ "U(P)SU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 12222111 _N_ _S_ "U(P)SSU(P)U(P)U(P)EU(P)" _N_ _N_ #-}
+instance _CCallable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/ghc/Regex.lhs b/ghc/lib/ghc/Regex.lhs
new file mode 100644
index 0000000000..6ea66e88ec
--- /dev/null
+++ b/ghc/lib/ghc/Regex.lhs
@@ -0,0 +1,389 @@
+\section[regex]{Haskell binding to the GNU regex library}
+
+What follows is a straightforward binding to the functions
+provided by the GNU regex library (the GNU group of functions with Perl
+like syntax)
+
+\begin{code}
+module Regex
+
+ (
+ PatBuffer(..),
+ re_compile_pattern,
+ re_match,
+ re_search,
+ re_match2,
+ re_search2,
+
+ REmatch(..)
+
+ ) where
+
+import PreludeGlaST
+
+\end{code}
+
+First, the higher level matching structure that the functions herein return:
+
+\begin{code}
+
+--
+-- GroupBounds hold the interval where a group
+-- matched inside a string, e.g.
+--
+-- matching "reg(exp)" "a regexp" returns the pair (5,7) for the
+-- (exp) group. (_PackedString indices start from 0)
+--
+
+type GroupBounds = (Int, Int)
+
+
+data REmatch
+ = REmatch (Array Int GroupBounds) -- for $1, ... $n
+ GroupBounds -- for $` (everything before match)
+ GroupBounds -- for $& (entire matched string)
+ GroupBounds -- for $' (everything after)
+ GroupBounds -- for $+ (matched by last bracket)
+ {- debugging deriving Text -}
+
+\end{code}
+
+Prior to any matching (or searching), the regular expression
+have to compiled into an internal form, the pattern buffer.
+Represent the pattern buffer as a Haskell heap object:
+
+\begin{code}
+
+
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+instance _CCallable PatBuffer
+instance _CReturnable PatBuffer
+
+createPatBuffer :: Bool
+ -> PrimIO PatBuffer
+createPatBuffer insensitive
+ = _casm_ `` %r = (int)sizeof(struct re_pattern_buffer); '' `thenPrimIO` \ sz ->
+ newCharArray (0,sz) `thenPrimIO` \ (_MutableByteArray _ pbuf#) ->
+ let
+ pbuf = PatBuffer# pbuf#
+ in
+ (if insensitive then
+ {-
+ See comment re: fastmap below
+ -}
+ ((_casm_ `` %r = (char *)malloc(256*sizeof(char)); '')::PrimIO _Addr) `thenPrimIO` \ tmap ->
+ {-
+ Set up the translate table so that any lowercase
+ char. gets mapped to an uppercase one. Beacuse quoting
+ inside CAsmStrings is Problematic, we pass in the ordinal values
+ of 'a','z' and 'A'
+ -}
+ _casm_ `` { int i;
+
+ for(i=0; i<256; i++)
+ ((char *)%0)[i] = (char)i;
+ for(i=(int)%1;i <=(int)%2;i++)
+ ((char *)%0)[i] = i - ((int)%1 - (int)%3);
+ %r = 0; } '' tmap (ord 'a') (ord 'z') (ord 'A') `seqPrimIO`
+ _casm_ `` { ((struct re_pattern_buffer *)%0)->translate = %1; %r = 0; } '' pbuf tmap
+ else
+ _casm_ `` { ((struct re_pattern_buffer *)%0)->translate = 0; %r = 0; } '' pbuf) `seqPrimIO`
+ {-
+ Use a fastmap to speed things up, would like to have the fastmap
+ in the Haskell heap, but it will get GCed before we can say regexp,
+ as the reference to it is buried inside a ByteArray :-(
+ -}
+ ((_casm_ `` %r = (char *)malloc(256*sizeof(char)); '')::PrimIO _Addr) `thenPrimIO` \ fmap ->
+ _casm_ `` { ((struct re_pattern_buffer *)%0)->fastmap = %1; %r = 0; } '' pbuf fmap `seqPrimIO`
+ {-
+ We want the compiler of the pattern to alloc. memory
+ for the pattern.
+ -}
+ _casm_ `` { ((struct re_pattern_buffer *)%0)->buffer = 0; %r = 0;} '' pbuf `seqPrimIO`
+ _casm_ `` { ((struct re_pattern_buffer *)%0)->allocated = 0; %r = 0;} '' pbuf `seqPrimIO`
+ returnPrimIO pbuf
+
+\end{code}
+
+@re_compile_pattern@ converts a regular expression into a pattern buffer,
+GNU style.
+
+Q: should we lift the syntax bits configuration up to the Haskell
+programmer level ?
+
+\begin{code}
+
+re_compile_pattern :: _PackedString
+ -> Bool
+ -> Bool
+ -> PrimIO PatBuffer
+re_compile_pattern str single_line_mode insensitive
+ = createPatBuffer insensitive `thenPrimIO` \ pbuf ->
+ (if single_line_mode then -- match a multi-line buffer
+ _casm_ `` %r = re_syntax_options = RE_PERL_SINGLELINE_SYNTAX; ''
+ else
+ _casm_ `` %r = re_syntax_options = RE_PERL_MULTILINE_SYNTAX; '') `seqPrimIO`
+
+ _casm_ `` %r=(int)re_compile_pattern((char *)%0,
+ (int)%1,
+ (struct re_pattern_buffer *)%2); '' (_unpackPS str)
+ (_lengthPS str)
+ pbuf `thenPrimIO` \ err ->
+ --
+ -- No checking for how the compilation of the pattern went yet.
+ --
+ returnPrimIO pbuf
+
+\end{code}
+
+Got a match ?
+
+\begin{code}
+
+re_match :: PatBuffer
+ -> _PackedString
+ -> Int
+ -> Bool
+ -> PrimIO (Maybe REmatch)
+re_match pbuf
+ str
+ start
+ reg
+ = ((if reg then -- record result of match in registers
+ _casm_ `` %r = (struct re_registers *)malloc(sizeof(struct re_registers *)); ''
+ else
+ _casm_ `` %r = (struct re_registers *)NULL; '')::PrimIO _Addr) `thenPrimIO` \ regs ->
+ _casm_ `` %r=(int)re_match((struct re_pattern_buffer *)%0,
+ (char *)%1,
+ (int)%2,
+ (int)%3,
+ (struct re_registers *)%4); '' pbuf
+ (_unpackPS str)
+ (_lengthPS str)
+ start
+ regs `thenPrimIO` \ match_res ->
+ if match_res == (-2) then
+ error "re_match: Internal error"
+ else if match_res < 0 then
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO Nothing
+ else
+ build_re_match start (_lengthPS str) regs `thenPrimIO` \ arr ->
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO (Just arr)
+
+\end{code}
+
+Matching on 2 strings is useful when you're dealing with multiple
+buffers, which is something that could prove useful for PackedStrings,
+as we don't want to stuff the contents of a file into one massive heap
+chunk, but load (smaller chunks) on demand.
+
+\begin{code}
+
+re_match2 :: PatBuffer
+ -> _PackedString
+ -> _PackedString
+ -> Int
+ -> Int
+ -> Bool
+ -> PrimIO (Maybe REmatch)
+re_match2 pbuf
+ str1
+ str2
+ start
+ stop
+ reg
+ = ((if reg then -- record result of match in registers
+ _casm_ `` %r = (struct re_registers *)malloc(sizeof(struct re_registers *)); ''
+ else
+ _casm_ `` %r = (struct re_registers *)NULL; '')::PrimIO _Addr) `thenPrimIO` \ regs ->
+ _casm_ `` %r=(int)re_match_2((struct re_pattern_buffer *)%0,
+ (char *)%1,
+ (int)%2,
+ (char *)%3,
+ (int)%4,
+ (int)%5,
+ (struct re_registers *)%6,
+ (int)%7); '' pbuf
+ (_unpackPS str1)
+ (_lengthPS str1)
+ (_unpackPS str2)
+ (_lengthPS str2)
+ start
+ regs
+ stop `thenPrimIO` \ match_res ->
+ if match_res == (-2) then
+ error "re_match2: Internal error"
+ else if match_res < 0 then
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO Nothing
+ else
+ build_re_match start stop regs `thenPrimIO` \ arr ->
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO (Just arr)
+
+
+\end{code}
+
+Find all the matches in a string.
+
+\begin{code}
+
+re_search :: PatBuffer
+ -> _PackedString
+ -> Int
+ -> Int
+ -> Bool
+ -> PrimIO (Maybe REmatch)
+re_search pbuf -- the compiled regexp
+ str -- the string to search
+ start -- start index
+ range -- stop index
+ reg -- record result of match in registers
+ = (if reg then -- record result of match in registers
+ _casm_ `` %r = (struct re_registers *)malloc(sizeof(struct re_registers *)); ''
+ else
+ _casm_ `` %r = (struct re_registers *)NULL; '') `thenPrimIO` \ regs ->
+ _casm_ `` %r=(int)re_search((struct re_pattern_buffer *)%0,
+ (char *)%1,
+ (int)%2,
+ (int)%3,
+ (int)%4,
+ (struct re_registers *)%5); '' pbuf
+ (_unpackPS str)
+ (_lengthPS str)
+ start
+ range
+ regs `thenPrimIO` \ match_res ->
+ if match_res== (-1) then
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO Nothing
+ else
+ let
+ (st,en) = if range > start then
+ (start,range)
+ else
+ (range,start)
+ in
+ build_re_match st en regs `thenPrimIO` \ arr ->
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO (Just arr)
+
+\end{code}
+
+Double buffer search
+
+\begin{code}
+
+re_search2 :: PatBuffer
+ -> _PackedString
+ -> _PackedString
+ -> Int
+ -> Int
+ -> Int
+ -> Bool
+ -> PrimIO (Maybe REmatch)
+re_search2 pbuf
+ str1
+ str2
+ start
+ range
+ stop
+ reg
+ = (if reg then -- record result of match in registers
+ _casm_ `` %r = (struct re_registers *)malloc(sizeof(struct re_registers *)); ''
+ else
+ _casm_ `` %r = (struct re_registers *)NULL; '') `thenPrimIO` \ regs ->
+ _casm_ `` %r=(int)re_search_2((struct re_pattern_buffer *)%0,
+ (char *)%1,
+ (int)%2,
+ (char *)%3,
+ (int)%4,
+ (int)%5,
+ (int)%6,
+ (struct re_registers *)%7,
+ (int)%8); '' pbuf
+ (_unpackPS str1)
+ (_lengthPS str1)
+ (_unpackPS str2)
+ (_lengthPS str2)
+ start
+ range
+ regs
+ stop `thenPrimIO` \ match_res ->
+ if match_res== (-1) then
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO Nothing
+ else
+ let
+ (st,en) = if range > start then
+ (start,range)
+ else
+ (range,start)
+ in
+ build_re_match st en regs `thenPrimIO` \ arr ->
+ _casm_ `` { free((struct re_registers *)%0); %r = 0; } '' regs `seqPrimIO`
+ returnPrimIO (Just arr)
+
+\end{code}
+
+\begin{code}
+
+build_re_match :: Int
+ -> Int
+ -> _Addr
+ -> PrimIO REmatch
+build_re_match str_start
+ str_end
+ regs
+ = _casm_ `` %r=(int)(*(struct re_registers *)%0).num_regs; '' regs `thenPrimIO` \ len ->
+ match_reg_to_array regs len `thenPrimIO` \ (match_start,match_end,arr) ->
+ let
+ (1,x) = bounds arr
+
+ bef = (str_start,match_start) -- $'
+ aft = (match_end,str_end) -- $`
+ lst = arr!x -- $+
+ mtch = (match_start,match_end) -- $&
+ in
+ returnPrimIO (REmatch arr
+ bef
+ mtch
+ aft
+ lst)
+ where
+ match_reg_to_array regs len
+ = trundleIO regs (0,[]) len `thenPrimIO` \ (no,ls) ->
+ let
+ (st,end,ls')
+ = case ls of
+ [] -> (0,0,[])
+ [(a,b)] -> (a,b,ls)
+ ((a,b):xs) -> (a,b,xs)
+ in
+ returnPrimIO
+ (st,
+ end,
+ array (1,max 1 (no-1))
+ [ i := x | (i,x) <- zip [1..] ls'])
+
+ trundleIO :: _Addr
+ -> (Int,[(Int,Int)])
+ -> Int
+ -> PrimIO (Int,[(Int,Int)])
+ trundleIO regs (i,acc) len
+ | i==len = returnPrimIO (i,reverse acc)
+ | otherwise
+ = _casm_ ``%r = (int)(((struct re_registers *)%0)->start)[(int)%1]; '' regs i `thenPrimIO` \ start ->
+ _casm_ ``%r = (int)(((struct re_registers *)%0)->end)[(int)%1]; '' regs i `thenPrimIO` \ end ->
+ let
+ acc' = (start,end):acc
+ in
+ if (start == (-1)) && (end == (-1)) then
+ returnPrimIO (i,reverse acc)
+ else
+ trundleIO regs (i+1,acc') len
+
+\end{code}
+
diff --git a/ghc/lib/ghc/Regex_mc.hi b/ghc/lib/ghc/Regex_mc.hi
new file mode 100644
index 0000000000..b12d44e586
--- /dev/null
+++ b/ghc/lib/ghc/Regex_mc.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Regex where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+re_compile_pattern :: _PackedString -> Bool -> Bool -> _State _RealWorld -> (PatBuffer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "SEEU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match :: PatBuffer -> _PackedString -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 12111 _N_ _S_ "U(P)SU(P)EU(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 7 _U_ 1222211 _N_ _S_ "U(P)SSU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search :: PatBuffer -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 6 _U_ 122211 _N_ _S_ "U(P)SU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 12222111 _N_ _S_ "U(P)SSU(P)U(P)U(P)EU(P)" _N_ _N_ #-}
+instance _CCallable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/ghc/Regex_mg.hi b/ghc/lib/ghc/Regex_mg.hi
new file mode 100644
index 0000000000..b12d44e586
--- /dev/null
+++ b/ghc/lib/ghc/Regex_mg.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Regex where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+re_compile_pattern :: _PackedString -> Bool -> Bool -> _State _RealWorld -> (PatBuffer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "SEEU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match :: PatBuffer -> _PackedString -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 12111 _N_ _S_ "U(P)SU(P)EU(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 7 _U_ 1222211 _N_ _S_ "U(P)SSU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search :: PatBuffer -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 6 _U_ 122211 _N_ _S_ "U(P)SU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 12222111 _N_ _S_ "U(P)SSU(P)U(P)U(P)EU(P)" _N_ _N_ #-}
+instance _CCallable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/ghc/Regex_mp.hi b/ghc/lib/ghc/Regex_mp.hi
new file mode 100644
index 0000000000..b12d44e586
--- /dev/null
+++ b/ghc/lib/ghc/Regex_mp.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Regex where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+re_compile_pattern :: _PackedString -> Bool -> Bool -> _State _RealWorld -> (PatBuffer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "SEEU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match :: PatBuffer -> _PackedString -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 12111 _N_ _S_ "U(P)SU(P)EU(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 7 _U_ 1222211 _N_ _S_ "U(P)SSU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search :: PatBuffer -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 6 _U_ 122211 _N_ _S_ "U(P)SU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 12222111 _N_ _S_ "U(P)SSU(P)U(P)U(P)EU(P)" _N_ _N_ #-}
+instance _CCallable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/ghc/Regex_p.hi b/ghc/lib/ghc/Regex_p.hi
new file mode 100644
index 0000000000..b12d44e586
--- /dev/null
+++ b/ghc/lib/ghc/Regex_p.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Regex where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+re_compile_pattern :: _PackedString -> Bool -> Bool -> _State _RealWorld -> (PatBuffer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "SEEU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match :: PatBuffer -> _PackedString -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 12111 _N_ _S_ "U(P)SU(P)EU(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 7 _U_ 1222211 _N_ _S_ "U(P)SSU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search :: PatBuffer -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 6 _U_ 122211 _N_ _S_ "U(P)SU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 12222111 _N_ _S_ "U(P)SSU(P)U(P)U(P)EU(P)" _N_ _N_ #-}
+instance _CCallable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/ghc/Regex_t.hi b/ghc/lib/ghc/Regex_t.hi
new file mode 100644
index 0000000000..b12d44e586
--- /dev/null
+++ b/ghc/lib/ghc/Regex_t.hi
@@ -0,0 +1,22 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Regex where
+import PreludeArray(Array)
+import PreludePS(_PackedString)
+import PreludeStdIO(Maybe)
+data PatBuffer = PatBuffer# (MutableByteArray# _RealWorld)
+data REmatch = REmatch (Array Int (Int, Int)) (Int, Int) (Int, Int) (Int, Int) (Int, Int)
+re_compile_pattern :: _PackedString -> Bool -> Bool -> _State _RealWorld -> (PatBuffer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "SEEU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match :: PatBuffer -> _PackedString -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 12111 _N_ _S_ "U(P)SU(P)EU(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+re_match2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 7 _U_ 1222211 _N_ _S_ "U(P)SSU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search :: PatBuffer -> _PackedString -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 6 _U_ 122211 _N_ _S_ "U(P)SU(P)U(P)EU(P)" _N_ _N_ #-}
+re_search2 :: PatBuffer -> _PackedString -> _PackedString -> Int -> Int -> Int -> Bool -> _State _RealWorld -> (Maybe REmatch, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 12222111 _N_ _S_ "U(P)SSU(P)U(P)U(P)EU(P)" _N_ _N_ #-}
+instance _CCallable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable PatBuffer
+ {-# GHC_PRAGMA _M_ Regex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/ghc/Set.hi b/ghc/lib/ghc/Set.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set.lhs b/ghc/lib/ghc/Set.lhs
new file mode 100644
index 0000000000..c51160f0ae
--- /dev/null
+++ b/ghc/lib/ghc/Set.lhs
@@ -0,0 +1,103 @@
+%
+% (c) The AQUA Project, Glasgow University, 1994
+%
+\section[Set]{An implementation of sets}
+
+This new (94/04) implementation of sets sits squarely upon our
+implementation of @FiniteMaps@. The interface is (roughly?) as
+before.
+
+See also the @UniqSet@ module (sets of things from which you can
+extract a @Unique@).
+
+\begin{code}
+#if defined(COMPILING_GHC) && defined(DEBUG_FINITEMAPS)
+#define OUTPUTABLE_a , Outputable a
+#else
+#define OUTPUTABLE_a {--}
+#endif
+
+module Set (
+#if defined(__GLASGOW_HASKELL__)
+ Set(..), -- abstract type: NOT
+#else
+ -- not a synonym so we can make it abstract
+ Set,
+#endif
+
+ mkSet, setToList, emptySet, singletonSet,
+ union, unionManySets, minusSet,
+ elementOf, mapSet,
+ intersect, isEmptySet
+
+ -- to make the interface self-sufficient
+#if defined(__GLASGOW_HASKELL__)
+ , FiniteMap -- abstract
+
+ -- for pragmas
+ , intersectFM, minusFM, keysFM, plusFM
+#endif
+ ) where
+
+import FiniteMap
+import Maybes ( maybeToBool
+#if __HASKELL1__ < 3
+ , Maybe(..)
+#endif
+ )
+#if defined(__GLASGOW_HASKELL__)
+-- I guess this is here so that our friend USE_ATTACK_PRAGMAS can
+-- do his job of seeking out and destroying information hiding. ADR
+import Util --OLD: hiding ( Set(..), emptySet )
+#endif
+
+#if defined(COMPILING_GHC)
+import Outputable
+#endif
+\end{code}
+
+\begin{code}
+#if defined(__GLASGOW_HASKELL__)
+
+type Set a = FiniteMap a ()
+
+#define MkSet {--}
+
+#else
+-- This can't be a type synonym if you want to use constructor classes.
+data Set a = MkSet (FiniteMap a ()) {-# STRICT #-}
+#endif
+
+emptySet :: Set a
+emptySet = MkSet emptyFM
+
+singletonSet :: a -> Set a
+singletonSet x = MkSet (singletonFM x ())
+
+setToList :: Set a -> [a]
+setToList (MkSet set) = keysFM set
+
+mkSet :: (Ord a OUTPUTABLE_a) => [a] -> Set a
+mkSet xs = MkSet (listToFM [ (x, ()) | x <- xs])
+
+union :: (Ord a OUTPUTABLE_a) => Set a -> Set a -> Set a
+union (MkSet set1) (MkSet set2) = MkSet (plusFM set1 set2)
+
+unionManySets :: (Ord a OUTPUTABLE_a) => [Set a] -> Set a
+unionManySets ss = foldr union emptySet ss
+
+minusSet :: (Ord a OUTPUTABLE_a) => Set a -> Set a -> Set a
+minusSet (MkSet set1) (MkSet set2) = MkSet (minusFM set1 set2)
+
+intersect :: (Ord a OUTPUTABLE_a) => Set a -> Set a -> Set a
+intersect (MkSet set1) (MkSet set2) = MkSet (intersectFM set1 set2)
+
+elementOf :: (Ord a OUTPUTABLE_a) => a -> Set a -> Bool
+elementOf x (MkSet set) = maybeToBool(lookupFM set x)
+
+isEmptySet :: Set a -> Bool
+isEmptySet (MkSet set) = sizeFM set == 0
+
+mapSet :: (Ord a OUTPUTABLE_a) => (b -> a) -> Set b -> Set a
+mapSet f (MkSet set) = MkSet (listToFM [ (f key, ()) | key <- keysFM set ])
+\end{code}
diff --git a/ghc/lib/ghc/Set_mc.hi b/ghc/lib/ghc/Set_mc.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_mc.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set_mg.hi b/ghc/lib/ghc/Set_mg.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_mg.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set_mp.hi b/ghc/lib/ghc/Set_mp.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_mp.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set_mr.hi b/ghc/lib/ghc/Set_mr.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_mr.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set_mt.hi b/ghc/lib/ghc/Set_mt.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_mt.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set_p.hi b/ghc/lib/ghc/Set_p.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_p.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Set_t.hi b/ghc/lib/ghc/Set_t.hi
new file mode 100644
index 0000000000..b0f9dee050
--- /dev/null
+++ b/ghc/lib/ghc/Set_t.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Set where
+import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+data FiniteMap a b {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
+type Set a = FiniteMap a ()
+elementOf :: Ord a => a -> FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+emptySet :: FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
+intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
+intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: FiniteMap a () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+keysFM :: FiniteMap b a -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
+mkSet :: Ord a => [a] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
+setToList :: FiniteMap a () -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
+singletonSet :: a -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
+unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket.hi b/ghc/lib/ghc/Socket.hi
new file mode 100644
index 0000000000..15476e253e
--- /dev/null
+++ b/ghc/lib/ghc/Socket.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Socket where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+import SocketPrim(Socket)
+type Hostname = [Char]
+data PortID = Service [Char] | PortNumber Int | UnixSocket [Char]
+data Socket
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, [Char]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+connectTo :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listenOn :: PortID -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+recvFrom :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendTo :: [Char] -> PortID -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2121 _N_ _S_ "LSLU(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 PortID, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket.lhs b/ghc/lib/ghc/Socket.lhs
new file mode 100644
index 0000000000..5326dd7413
--- /dev/null
+++ b/ghc/lib/ghc/Socket.lhs
@@ -0,0 +1,189 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+% Last Modified: Fri Jul 21 15:53:32 1995
+% Darren J Moffat <moffatd@dcs.gla.ac.uk>
+\section[Socket]{Haskell 1.3 Socket bindings}
+
+
+\begin{code}
+module Socket (
+
+ PortID(..),
+ Hostname(..),
+
+ connectTo, -- :: Hostname -> PortID -> IO Handle
+ listenOn, -- :: PortID -> IO Socket
+
+ accept, -- :: Socket -> IO (Handle, HostName)
+
+ sendTo, -- :: Hostname -> PortID -> String -> IO ()
+ recvFrom, -- :: Hostname -> PortID -> IO String
+
+ socketPort, -- :: Socket -> IO PortID
+
+ -- make interface self-sufficient:
+ Socket
+) where
+
+
+import BSD
+import SocketPrim renaming (accept to socketPrim_accept
+ , socketPort to socketPort_prim
+ )
+
+
+
+\end{code}
+
+
+%***************************************************************************
+%* *
+\subsection[Socket-Setup]{High Level "Setup" functions}
+%* *
+%***************************************************************************
+
+Calling $connectTo$ creates a client side socket which is
+connected to the given host and port. The Protocol and socket type is
+derived from the given port identifier. If a port number is given
+then the result is always an internet family $Stream$ socket.
+
+If the $PortID$ specifies a unix family socket and the $Hostname$
+differs from that returned by $getHostname$ then an error is
+raised. Alternatively an empty string may be given to $connectTo$
+signalling that the current hostname applies.
+
+\begin{code}
+data PortID =
+ Service String -- Service Name eg "ftp"
+ | PortNumber Int -- User defined Port Number
+ | UnixSocket String -- Unix family socket in file system
+
+type Hostname = String
+-- Maybe consider this alternative.
+-- data Hostname = Name String | IP Int Int Int Int
+
+
+\end{code}
+
+If more control over the socket type is required then $socketPrim$
+should be used instead.
+
+
+
+\begin{code}
+connectTo :: Hostname -> -- Hostname
+ PortID -> -- Port Identifier
+ IO Handle -- Connected Socket
+connectTo hostname (Service serv) =
+ getProtocolNumber "tcp" >>= \ proto ->
+ socket AF_INET Stream proto >>= \ sock ->
+ getServicePortNumber serv >>= \ port ->
+ getHostByName hostname >>= \ (HostEntry _ _ _ haddrs) ->
+ connect sock (SockAddrInet port (head haddrs)) >>
+ socketToHandle sock
+connectTo hostname (PortNumber port) =
+ getProtocolNumber "tcp" >>= \ proto ->
+ socket AF_INET Stream proto >>= \ sock ->
+ getHostByName hostname >>= \ (HostEntry _ _ _ haddrs) ->
+ connect sock (SockAddrInet port (head haddrs)) >>
+ socketToHandle sock
+connectTo _ (UnixSocket path) =
+ socket AF_UNIX Datagram 0 >>= \ sock ->
+ connect sock (SockAddrUnix path) >>
+ socketToHandle sock
+\end{code}
+
+
+The dual to the $connectTo$ call. This creates the server side
+socket which has been bound to the specified port.
+
+\begin{code}
+listenOn :: PortID -> -- Port Identifier
+ IO Socket -- Connected Socket
+listenOn (Service serv) =
+ getProtocolNumber "tcp" >>= \ proto ->
+ socket AF_INET Stream proto >>= \ sock ->
+ getServicePortNumber serv >>= \ port ->
+ bindSocket sock (SockAddrInet port iNADDR_ANY) >>
+ listen sock maxListenQueue >>
+ return sock
+listenOn (PortNumber port) =
+ getProtocolNumber "tcp" >>= \ proto ->
+ socket AF_INET Stream proto >>= \ sock ->
+ bindSocket sock (SockAddrInet port iNADDR_ANY) >>
+ listen sock maxListenQueue >>
+ return sock
+listeOn (UnixSocket path) =
+ socket AF_UNIX Datagram 0 >>= \ sock ->
+ bindSocket sock (SockAddrUnix path) >>
+ return sock
+\end{code}
+
+\begin{code}
+accept :: Socket -> -- Listening Socket
+ IO (Handle, -- StdIO Handle for read/write
+ HostName) -- HostName of Peer socket
+accept sock =
+ socketPrim_accept sock >>= \ (sock', (SockAddrInet _ haddr)) ->
+ getHostByAddr AF_INET haddr >>= \ (HostEntry peer _ _ _) ->
+ socketToHandle sock >>= \ handle ->
+ return (handle, peer)
+\end{code}
+
+Send and recived data from/to the given host and port number. These
+should normally only be used where the socket will not be required for
+further calls.
+
+Thse are wrappers around socket, bind, and listen.
+
+\begin{code}
+sendTo :: Hostname -> -- Hostname
+ PortID-> -- Port Number
+ String -> -- Message to send
+ IO ()
+sendTo h p msg =
+ connectTo h p >>= \ s ->
+ hPutStr s msg >>
+ hClose s
+
+
+
+
+recvFrom :: Hostname -> -- Hostname
+ PortID-> -- Port Number
+ IO String -- Received Data
+recvFrom host port =
+ listenOn port >>= \ s ->
+ let
+ waiting =
+ socketPrim_accept s >>= \ (s', (SockAddrInet _ haddr)) ->
+ getHostByAddr AF_INET haddr >>= \ (HostEntry peer _ _ _) ->
+ if peer /= host then
+ sClose s' >>
+ waiting
+ else
+ readSocketAll s' >>= \ msg ->
+ sClose s' >>
+ return msg
+ in
+ waiting >>= \ message ->
+ sClose s >>
+ return message
+
+\end{code}
+
+
+
+\begin{code}
+socketPort :: Socket -> IO PortID
+socketPort s =
+ getSocketName s >>= \ sockaddr ->
+ return (case sockaddr of
+ SockAddrInet port _ ->
+ (PortNumber port)
+ SockAddrUnix path ->
+ (UnixSocket path)
+ )
+
+\end{code}
diff --git a/ghc/lib/ghc/SocketPrim.hi b/ghc/lib/ghc/SocketPrim.hi
new file mode 100644
index 0000000000..4595611461
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim.hi
@@ -0,0 +1,125 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SocketPrim where
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+data Family = AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX
+type HostAddress = _Word
+data SockAddr = SockAddrUnix [Char] | SockAddrInet Int _Word
+data Socket
+data SocketType = Stream | Datagram | Raw | RDM | SeqPacket
+aNY_PORT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (Socket, SockAddr), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LELLL)L" _N_ _N_ #-}
+bindSocket :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+connect :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+getPeerName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSocketName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+iNADDR_ANY :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inet_addr :: [Char] -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+inet_ntoa :: _Word -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listen :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+maxListenQueue :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+packFamily :: Family -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+packSockAddr :: SockAddr -> _State _RealWorld -> (_MutableByteArray _RealWorld Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packSocketType :: SocketType -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
+readSocket :: Socket -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+readSocketAll :: Socket -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LAAAL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sClose :: Socket -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(U(P)AAAA)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsBound :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsConnected :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsListening :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsReadable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsWritable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ SocketPrim sIsReadable _N_ #-}
+sOMAXCONN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+shutdown :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(P)AAAA)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socket :: Family -> SocketType -> Int -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LEAAA)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketToHandle :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)AAAA)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackFamily :: Int -> Family
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> _State _RealWorld -> (SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSocket :: Socket -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Eq SockAddr
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SockAddr -> SockAddr -> Bool), (SockAddr -> SockAddr -> Bool)] [_CONSTM_ Eq (==) (SockAddr), _CONSTM_ Eq (/=) (SockAddr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool)] [_CONSTM_ Eq (==) (SocketType), _CONSTM_ Eq (/=) (SocketType)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord SocketType}}, ((SocketType, SocketType) -> [SocketType]), ((SocketType, SocketType) -> SocketType -> Int), ((SocketType, SocketType) -> SocketType -> Bool)] [_DFUN_ Ord (SocketType), _CONSTM_ Ix range (SocketType), _CONSTM_ Ix index (SocketType), _CONSTM_ Ix inRange (SocketType)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq SocketType}}, (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> _CMP_TAG)] [_DFUN_ Eq (SocketType), _CONSTM_ Ord (<) (SocketType), _CONSTM_ Ord (<=) (SocketType), _CONSTM_ Ord (>=) (SocketType), _CONSTM_ Ord (>) (SocketType), _CONSTM_ Ord max (SocketType), _CONSTM_ Ord min (SocketType), _CONSTM_ Ord _tagCmp (SocketType)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(SocketType, [Char])]), (Int -> SocketType -> [Char] -> [Char]), ([Char] -> [([SocketType], [Char])]), ([SocketType] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (SocketType), _CONSTM_ Text showsPrec (SocketType), _CONSTM_ Text readList (SocketType), _CONSTM_ Text showList (SocketType)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/SocketPrim.lhs b/ghc/lib/ghc/SocketPrim.lhs
new file mode 100644
index 0000000000..917b68fc55
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim.lhs
@@ -0,0 +1,966 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+% Last Modified: Fri Jul 21 15:14:43 1995
+% Darren J Moffat <moffatd@dcs.gla.ac.uk>
+\section[Socket]{Haskell 1.3 Socket bindings}
+
+
+\begin{code}
+module SocketPrim (
+
+ Socket,
+ Family(..),
+ SocketType(..),
+ SockAddr(..),
+ HostAddress(..),
+
+ socket, -- :: Family -> SocketType -> Int -> IO Socket
+ connect, -- :: Socket -> SockAddr -> IO ()
+ bindSocket, -- :: Socket -> SockAddr -> IO ()
+ listen, -- :: Socket -> Int -> IO ()
+ accept, -- :: Socket -> IO (Socket, SockAddr)
+ getPeerName, -- :: Socket -> IO SockAddr
+ getSocketName, -- :: Socket -> IO SockAddr
+
+ socketPort, -- :: Socket -> IO Int
+
+ writeSocket, -- :: Socket -> String -> IO Int
+ readSocket, -- :: Socket -> Int -> IO (String, Int)
+ readSocketAll, -- :: Socket -> IO String
+
+ socketToHandle, -- :: Socket -> IO Handle
+
+-- Alternative read/write interface not yet implemented.
+-- sendto -- :: Socket -> String -> SockAddr -> IO Int
+-- recvfrm -- :: Socket -> Int -> SockAddr -> IO (String, Int)
+-- sendmsg -- :: Socket -> Message -> MsgFlags -> IO Int
+-- recvmsg -- :: Socket -> MsgFlags -> IO Message
+
+ shutdown, -- :: Socket -> Int -> IO ()
+ sClose, -- :: Socket -> IO ()
+
+ inet_addr, -- :: String -> HostAddress
+ inet_ntoa, -- :: HostAddress -> String
+
+ sIsConnected, -- :: Socket -> IO Bool
+ sIsBound, -- :: Socket -> IO Bool
+ sIsListening, -- :: Socket -> IO Bool
+ sIsReadable, -- :: Socket -> IO Bool
+ sIsWritable, -- :: Socket -> IO Bool
+
+
+-- Special Constants
+
+ aNY_PORT,
+ iNADDR_ANY,
+-- sOL_SOCKET,
+ sOMAXCONN,
+ maxListenQueue,
+
+
+-- The following are exported ONLY for use in the BSD module and
+-- should not be used else where.
+
+ packFamily, unpackFamily,
+ packSocketType,
+ packSockAddr, unpackSockAddr
+
+) where
+
+import CError
+import LibPosix
+import LibPosixUtil
+import PreludeGlaST
+import PreludePrimIO ( newEmptyMVar, putMVar, _MVar )
+import PreludeStdIO
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection[Socket-SocketTypes]{Socket Types}
+%* *
+%************************************************************************
+
+
+There are a few possible ways to do this. The first is convert the
+structs used in the C library into an equivalent Haskell type. An
+other possible implementation is to keep all the internals in the C
+code and use an Int\# and a status flag. The second method is used here
+since a lot of the C structures are not required to be manipulated.
+Originally the status was non mutable so we had to return a new socket
+each time we changed the status. This version now uses mutable
+variables to avoid the need to do this. The result is a cleaner
+interface and better security since the application programmer now
+can't circumvent the status information to perform invalid operations
+on sockets.
+
+
+\begin{code}
+data SocketStatus =
+ -- Returned Status Function called
+ NotConnected -- socket
+ | Bound -- bindSocket
+ | Listening -- listen
+ | Connected -- connect/accept
+ | Error String -- Any
+ deriving (Eq, Text)
+
+data Socket = MkSocket
+ Int -- File Descriptor Part
+ Family
+ SocketType
+ Int -- Protocol Number
+ (MutableVar _RealWorld SocketStatus) -- Status Flag
+
+
+\end{code}
+
+In C bind takes either a $struct sockaddr_in$ or a $struct
+sockaddr_un$ but these are always type cast to $struct sockaddr$. We
+attempt to emulate this and provide better type checking. Note that
+the socket family fields are redundant since this is caputured in the
+constructor names, it has thus be left out of the Haskell $SockAddr$
+data type.
+
+
+\begin{code}
+type HostAddress = _Word
+
+data SockAddr = -- C Names
+ SockAddrUnix -- struct sockaddr_un
+ String -- sun_path
+
+ | SockAddrInet -- struct sockaddr_in
+ Int -- sin_port
+ HostAddress -- sin_addr
+
+ deriving Eq
+
+\end{code}
+
+
+
+%************************************************************************
+%* *
+\subsection[Socket-Connections]{Connection Functions}
+%* *
+%************************************************************************
+
+
+In the following connection and binding primitives. The names of the
+equivalent C functions have been preserved where possible. It should
+be noted that some of these names used in the C library, bind in
+particular, have a different meaning to many Haskell programmers and
+have thus been renamed by appending the prefix Socket.
+
+
+Create an unconnected socket of the given family, type and protocol.
+The most common invocation of $socket$ is the following:
+\begin{verbatim}
+ ...
+ socket AF_INET Stream 6 >>= \ my_socket ->
+ ...
+\end{verbatim}
+
+\begin{code}
+socket :: Family -> -- Family Name (usually AF_INET)
+ SocketType -> -- Socket Type (usually Stream)
+ Int -> -- Protocol Number (getProtocolByName to find value)
+ IO Socket -- Unconnected Socket
+
+socket family stype protocol =
+ _ccall_ socket (packFamily family) (packSocketType stype) protocol
+ `thenPrimIO` \ s ->
+ if s == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EACCES ->
+ fail "socket: Permission Denied"
+ EMFILE ->
+ fail "socket: No more descriptiors available"
+ ENFILE ->
+ fail "socket: System file table is full"
+ ENOBUFS ->
+ fail "socket: Insufficient Buffer space to create socket"
+ EPROTONOSUPPOR ->
+ fail ("socket: Protocol " ++ show protocol ++
+ " not supported for Family " ++ show family)
+ EPROTOTYPE ->
+ fail ("socket: Protocol " ++ show protocol ++
+ " wrong type for socket")
+ _ ->
+ fail ("socket: " ++ (errorCodeToStr errno))
+ )
+ else
+ newVar NotConnected `thenPrimIO` \ status ->
+ return (MkSocket s family stype protocol status)
+\end{code}
+
+Given a port number this {\em binds} the socket to that port. This
+means that the programmer is only interested in data being sent to
+that port number. The $Family$ passed to $bindSocket$ must
+be the same as that passed to $socket$. If the special port
+number $aNY_PORT$ is passed then the system assigns the next
+available use port.
+
+Port numbers for standard unix services can be found by calling
+$getServiceEntry$. These are traditionally port numbers below
+1000; although there are afew, namely NFS and IRC, which used higher
+numbered ports.
+
+The port number allocated to a socket bound by using $aNY_PORT$ can be
+found by calling $port$
+
+\begin{code}
+bindSocket :: Socket -> -- Unconnected Socket
+ SockAddr -> -- Address to Bind to
+ IO ()
+
+bindSocket (MkSocket s family stype protocol status) addr =
+ readVar status `thenST` \ currentStatus ->
+ if currentStatus /= NotConnected then
+ fail ("bindSocket: can't peform bind on socket in status " ++
+ show currentStatus)
+ else
+ packSockAddr addr `thenPrimIO` \ addr' ->
+ let (_,sz) = boundsOfByteArray addr' in
+ _casm_ ``%r = bind(%0, (struct sockaddr*)%1, %2);''
+ s addr' sz `thenPrimIO` \ result ->
+ if result == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EACCES ->
+ fail "bindSocket: The requested address is protected"
+ EADDRINUSE ->
+ fail "bindSocket: Address in use by another process"
+ EADDRNOTAVAIL ->
+ fail "bindSocket: Address not available"
+ EBADF ->
+ fail "bindSocket: invalid descriptor"
+ EFAULT ->
+ fail "bindSocket: name parameter not in vaild user address space"
+ EINVAL ->
+ fail "bindSocket: namelen invalid size for given family"
+ ENOTSOCK ->
+ fail "bindSocket: attempt to bind a non socket descriptor"
+ _ ->
+ fail ("bindSocket: " ++ (errorCodeToStr errno))
+ )
+ else
+ writeVar status (Bound) `seqPrimIO`
+ return ()
+
+\end{code}
+
+
+Make a connection to an already opened socket on a given machine and port.
+assumes that we have already called createSocket, othewise it will fail.
+
+This is the dual to $bindSocket$. The {\em server} process will
+usually bind to a port number, the {\em client} will then connect to
+the same port number. Port numbers of user applications are normally
+agreed in advance, otherwise we must rely on some hacky mechanism for telling
+the {\em otherside} what port number we have been allocated.
+
+\begin{code}
+connect :: Socket -> -- Unconnected Socket
+ SockAddr -> -- Socket address stuff
+ IO ()
+
+connect (MkSocket s family stype protocol status) addr =
+ readVar status `thenST` \ currentStatus ->
+ if currentStatus /= NotConnected then
+ fail ("connect: can't peform connect on socket in status " ++
+ show currentStatus)
+ else
+ packSockAddr addr `thenPrimIO` \ addr' ->
+ let (_,sz) = boundsOfByteArray addr' in
+ _casm_ ``%r = connect(%0,(struct sockaddr*)%1, %2);''
+ s addr' sz `thenPrimIO` \ result ->
+ if result == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EADDRINUSE ->
+ fail "connect: address in use"
+ EADDRNOTAVAIL ->
+ fail "connect: address not available on remote machine"
+ EAFNOSUPPORT ->
+ fail "connect: invalid socket address family"
+ EALREADY ->
+ fail ("connect: socket in non-blocking and previous " ++
+ "attempt to connect not yet complteted")
+ EBADF ->
+ fail "connect: socket in not a vaild descriptor"
+ ECONNREFUSED ->
+ fail "connect: connection refused by peer"
+ EFAULT ->
+ fail "connect: address parameter outside process address space"
+ EINPROGRESS ->
+ fail ("connect: socket is non-blocking and connection can " ++
+ "not be completed imediately")
+ EINTR ->
+ fail "connect: connection interrupted before delivery signal"
+ EINVAL ->
+ fail ("connect: namlen not size of valid address for " ++
+ "specified family")
+ EISCONN ->
+ fail "connect: socket is already connected"
+ ENETUNREACH ->
+ fail "connect: network unreachable"
+ ENOTSOCK ->
+ fail "connect: file descriptor passed instead of socket"
+ ETIMEDOUT ->
+ fail "connect: timed out without establishing connection"
+ _ ->
+ fail ("connect: " ++ (errorCodeToStr errno))
+ )
+ else
+ writeVar status (Connected) `seqPrimIO`
+ return ()
+
+\end{code}
+
+The programmer must call $listen$ to tell the system software
+that they are now interested in receiving data on this port. This
+must be called on the bound socket before any calls to read or write
+data are made.
+
+The programmer also gives a number which indicates the length of the
+incoming queue of unread messages for this socket. On most systems the
+maximum queue length is around 5. To remove a message from the queue
+for processing a call to $accept$ should be made.
+
+\begin{code}
+listen :: Socket -> -- Connected & Bound Socket
+ Int -> -- Queue Length
+ IO ()
+
+listen (MkSocket s family stype protocol status) backlog =
+ readVar status `thenST` \ currentStatus ->
+ if currentStatus /= Bound then
+ fail ("listen: can't peform listen on socket in status " ++
+ show currentStatus)
+ else
+ _ccall_ listen s backlog `thenPrimIO` \ result ->
+ if result == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EBADF ->
+ fail "listen: socket file descriptor invalid"
+ ENOTSOCK ->
+ fail "listen: file descriptor is not a socket"
+ EOPNOTSUPP ->
+ fail "listen: not supported fro this type of socket"
+ _ ->
+ fail ("listen: " ++ (errorCodeToStr errno))
+ )
+ else
+ writeVar status (Listening) `seqPrimIO`
+ return ()
+\end{code}
+
+A call to $accept$ only returns when data is available on the given
+socket, unless the socket has been set to non-blocking. It will
+return a new socket which should be used to read the incoming data and
+should then be closed. Using the socket returned by $accept$ allows
+incoming requests to be queued on the original socket.
+
+
+\begin{code}
+accept :: Socket -> -- Queue Socket
+ IO (Socket, -- Readable Socket
+ SockAddr) -- Peer details
+
+accept sock@(MkSocket s family stype protocol status) =
+ readVar status `thenST` \ currentStatus ->
+ sIsAcceptable sock >>= \ okay ->
+ if not okay then
+ fail ("accept: can't peform accept on socket in status " ++
+ show currentStatus)
+ else
+ allocSockAddr family `thenPrimIO` \ (ptr, sz) ->
+ _casm_ ``%r = accept(%0,(struct sockaddr*)%1, &%2);''
+ s ptr sz `thenPrimIO` \ sock ->
+ if sock == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EBADF ->
+ fail "accept: descriptor is invalid"
+ EFAULT ->
+ fail "accept: addr is not in writeable part of address space"
+ ENOTSOCK ->
+ fail "accept: descriptor is not a socket"
+ EOPNOTSUPP ->
+ fail ("accept: socket not of type" ++ show stype)
+ EWOULDBLOCK ->
+ fail "accept: would block"
+ _ ->
+ fail ("accept: " ++ (errorCodeToStr errno))
+ )
+ else
+ unpackSockAddr ptr `thenPrimIO` \ addr ->
+ newVar Connected `thenPrimIO` \ status ->
+ return ((MkSocket sock family stype protocol status), addr)
+
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Socket-DataPass]{Data Passing Primitives}
+%* *
+%************************************************************************
+
+To allow Haskell to talk to C programs we need to beable to
+communicate interms of byte streams. $writeSocket$ and
+$readSocket$ should only be used for this purpose and not for
+communication between Haskell programs. Haskell programs should use
+the 1.3 IO hPutStr and associated machinery for communicating with
+each other.
+
+
+\begin{code}
+writeSocket :: Socket -> -- Connected Socket
+ String -> -- Data to send
+ IO Int -- Number of Bytes sent
+
+writeSocket (MkSocket s family stype protocol status) xs =
+ readVar status `thenST` \ currentStatus ->
+ if not ((currentStatus /= Connected) || (currentStatus /= Listening)) then
+ fail ("writeSocket: can't peform write on socket in status " ++
+ show currentStatus)
+ else
+ _ccall_ write s xs (length xs) `thenPrimIO` \ nbytes ->
+ if nbytes == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EBADF ->
+ fail "writeSocket: invalid file descriptor"
+ EDQUOT ->
+ fail "writeSocket: disk quota exhausted"
+ EFAULT ->
+ fail "writeSocket: data area outside address space"
+ EFBIG ->
+ fail "writeSocket: max file size limit exeeded"
+ EINTR ->
+ fail "writeSocket: interupt received before data written"
+ EINVAL ->
+ fail ("writeSocket: The stream is linked below a " ++
+ "multiplexor. The fd pointer was negative")
+ ENOSPC ->
+ fail "writeSocket: no space left on device"
+ ENXIO ->
+ fail "writeSocket: hangup occured on stream"
+ EPIPE ->
+ fail "writeSocket: attempt to write to unopened pipe"
+ ERANGE ->
+ fail "writeSocket: to much data to write"
+ EWOULDBLOCK ->
+ fail "writeSocket: would block"
+ EAGAIN ->
+ fail "writeSocket: would block"
+ _ ->
+ fail ("writeSocket: " ++ (errorCodeToStr errno))
+ )
+ else
+ return nbytes
+
+readSocket :: Socket -> -- Connected Socket
+ Int -> -- Number of Bytes to Read
+ IO (String, Int) -- (Data Read, Number of Bytes)
+
+readSocket (MkSocket s family stype protocol status) nbytes =
+ readVar status `thenST` \ currentStatus ->
+ if not ((currentStatus /= Connected) || (currentStatus /= Listening)) then
+ fail ("readSocket: can't perform read on socket in status " ++
+ show currentStatus)
+ else
+-- newCharArray (0, nbytes) `thenPrimIO` \ ptr \ ->
+ _casm_ ``%r = (char*)malloc(1+sizeof(char)*%0);'' nbytes
+ `thenPrimIO` \ buffer ->
+ _ccall_ read s buffer nbytes `thenPrimIO` \ result ->
+ if result == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ (case errno of
+ EAGAIN ->
+ fail "readSocket: no data to read (non-blocking)"
+ EBADF ->
+ fail "readSocket: invalid file descriptor"
+ EBADMSG ->
+ fail "readSocket: not a valid data message"
+ EFAULT ->
+ fail "readSocket: buffer outside allocated address space"
+ EINTR ->
+ fail "readSocket: interupted by signal before data"
+ EINVAL ->
+ fail ("readSocket: The stream is linked below a " ++
+ "multiplexor. The file descriptor pointer was negative")
+ EIO ->
+ fail "readSocket: IO error"
+ EISDIR ->
+ fail "readSocket: descriptor is an NFS directory"
+ EWOULDBLOCK ->
+ fail "readSocket: would block"
+ _ ->
+ fail ("readSocket: " ++ (errorCodeToStr errno))
+ )
+ else
+ return (_unpackPS (_packCString buffer), result)
+
+
+readSocketAll :: Socket -> IO String
+readSocketAll s =
+ let
+ loop xs =
+ readSocket s 4096 >>= \ (str, nbytes) ->
+ if nbytes /= 0 then
+ loop (str ++ xs)
+ else
+ return xs
+ in
+ loop ""
+
+\end{code}
+
+The port number the given socket is currently connected to can be
+determined by calling $port$, is generally only useful when bind
+was given $aNY_PORT$.
+
+\begin{code}
+socketPort :: Socket -> -- Connected & Bound Socket
+ IO Int -- Port Number of Socket
+socketPort sock@(MkSocket s AF_INET stype protocol status) =
+ getSocketName sock >>= \ (SockAddrInet port _) ->
+ return port
+socketPort (MkSocket s family stype protocol status) =
+ fail ("socketPort: not supported for Family " ++ show family)
+\end{code}
+
+Calling $getPeerName$ returns the address details of the machine,
+other than the local one, which is connected to the socket. This is
+used in programs such as FTP to determine where to send the returning
+data. The corresponding call to get the details of the local machine
+is $getSocketName$.
+
+\begin{code}
+getPeerName :: Socket -> IO SockAddr
+getPeerName (MkSocket s family stype protocol status) =
+ allocSockAddr family `thenPrimIO` \ (ptr,sz) ->
+ _casm_ ``%r = getpeername(%0,(struct sockaddr*)%1,&%2);''
+ s ptr sz `thenPrimIO` \ result ->
+ if result == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ fail ("getPeerName: " ++ (errorCodeToStr errno))
+ else
+ unpackSockAddr ptr `thenPrimIO` \ addr ->
+ return addr
+
+getSocketName :: Socket -> IO SockAddr
+getSocketName (MkSocket s family stype protocol status) =
+ allocSockAddr family `thenPrimIO` \ (ptr,sz) ->
+ _casm_ ``%r = getsockname(%0,(struct sockaddr*)%1, &%2);''
+ s ptr sz `thenPrimIO` \ result ->
+ if result == -1 then
+ getCErrorCode `thenPrimIO` \ errno ->
+ fail ("getSocketName: " ++ (errorCodeToStr errno))
+ else
+ unpackSockAddr ptr `thenPrimIO` \ addr ->
+ return addr
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection[Socket-Properties]{Socket Properties}
+%* *
+%************************************************************************
+
+\begin{code}
+{-
+data SocketOption =
+ Debug
+ | AcceptConnection
+ | ReuseAddr
+ | KeepAlive
+ | DontRoute
+ | Broadcast
+ | UseLoopBack
+ | Linger
+ | OOBInline
+ | SendBuffer
+ | RecvBuffer
+ | SendLowWater
+ | RecvLowWater
+ | SendTimeOut
+ | RecvTimeOut
+ | Error
+ | Type
+
+sOL_SOCKET = ``SOL_SOCKET''
+
+setSocketOptions :: Socket ->
+ Int -> -- Level
+ SocketOption -> -- Option Name
+ String -> -- Option Value
+ IO ()
+
+getSocketOptons :: Socket ->
+ Int -> -- Level
+ SocketOption -> -- Option Name
+ IO String -- Option Value
+-}
+\end{code}
+
+A calling sequence table for the main functions is shown in the table below.
+
+\begin{figure}[h]
+\begin{center}
+\begin{tabular}{|l|c|c|c|c|c|c|c|}
+\hline
+\textbf{A Call to} & socket & connect & bindSocket & listen & accept & read & write \\
+\hline
+\textbf{Precedes} & & & & & & & \\
+\hline
+socket & & & & & & & \\
+\hline
+connect & + & & & & & & \\
+\hline
+bindSocket & + & & & & & & \\
+\hline
+listen & & & + & & & & \\
+\hline
+accept & & & & + & & & \\
+\hline
+read & & + & & + & + & + & + \\
+\hline
+write & & + & & + & + & + & + \\
+\hline
+\end{tabular}
+\caption{Sequence Table for Major functions of Socket}
+\label{tab:api-seq}
+\end{center}
+\end{figure}
+
+%************************************************************************
+%* *
+\subsection[Socket-OSDefs]{OS Dependant Definitions}
+%* *
+%************************************************************************
+
+
+The following Family and Socket Type declarations were manually derived
+from /usr/include/sys/socket.h on the appropriate machines.
+
+Maybe a configure script that could parse the socket.h file to produce
+the following declaration is required to make it "portable" rather than
+using the dreded \#ifdefs.
+
+Presently only the following machine/os combinations are supported:
+
+\begin{itemize}
+\item Intelx86/Linux
+\item SPARC/SunOS
+\item SPARC/Solaris
+\item Alpha/OSF
+\end{itemize}
+
+\begin{code}
+
+unpackFamily :: Int -> Family
+packFamily :: Family -> Int
+
+packSocketType :: SocketType -> Int
+#ifdef sun
+
+data Family =
+ AF_UNSPEC -- unspecified
+ | AF_UNIX -- local to host (pipes, portals
+ | AF_INET -- internetwork: UDP, TCP, etc
+ | AF_IMPLINK -- arpanet imp addresses
+ | AF_PUP -- pup protocols: e.g. BSP
+ | AF_CHAOS -- mit CHAOS protocols
+ | AF_NS -- XEROX NS protocols
+ | AF_NBS -- nbs protocols
+ | AF_ECMA -- european computer manufacturers
+ | AF_DATAKIT -- datakit protocols
+ | AF_CCITT -- CCITT protocols, X.25 etc
+ | AF_SNA -- IBM SNA
+ | AF_DECnet -- DECnet
+ | AF_DLI -- Direct data link interface
+ | AF_LAT -- LAT
+ | AF_HYLINK -- NSC Hyperchannel
+ | AF_APPLETALK -- Apple Talk
+ | AF_NIT -- Network Interface Tap
+ | AF_802 -- IEEE 80.2, also ISO 8802
+ | AF_OSI -- umberella of all families used by OSI
+ | AF_X25 -- CCITT X.25
+ | AF_OSINET -- AFI
+ | AF_GOSSIP -- US Government OSI
+ | AF_IPX -- Novell Internet Protocol
+ deriving (Eq, Ord, Ix, Text)
+
+packFamily = index (AF_UNSPEC, AF_IPX)
+unpackFamily family = (range (AF_UNSPEC, AF_IPX))!!family
+
+#endif
+
+#ifdef __alpha__
+
+data Family =
+ AF_UNSPEC -- unspecified
+ | AF_UNIX -- local to host (pipes, portals)
+ | AF_INET -- internetwork: UDP, TCP, etc.
+ | AF_IMPLINK -- arpanet imp addresses
+ | AF_PUP -- pup protocols: e.g. BSP
+ | AF_CHAOS -- mit CHAOS protocols
+ | AF_NS -- XEROX NS protocols
+ | AF_ISO -- ISO protocols
+ | AF_ECMA -- european computer manufacturers
+ | AF_DATAKIT -- datakit protocols
+ | AF_CCITT -- CCITT protocols, X.25 etc
+ | AF_SNA -- IBM SNA
+ | AF_DECnet -- DECnet
+ | AF_DLI -- DEC Direct data link interface
+ | AF_LAT -- LAT
+ | AF_HYLINK -- NSC Hyperchannel
+ | AF_APPLETALK -- Apple Talk
+ | AF_ROUTE -- Internal Routing Protocol
+ | AF_LINK -- Link layer interface
+ | Pseudo_AF_XTP -- eXpress Transfer Protocol (no AF)
+ | AF_NETMAN -- DNA Network Management
+ | AF_X25 -- X25 protocol
+ | AF_CTF -- Common Trace Facility
+ | AF_WAN -- Wide Area Network protocols
+ deriving (Eq, Ord, Ix, Text)
+
+packFamily = index (AF_UNSPEC, AF_WAN)
+unpackFamily family = (range (AF_UNSPEC, AF_WAN))!!family
+#endif
+
+
+#ifdef linux
+data Family =
+ AF_UNSPEC
+ | AF_UNIX
+ | AF_INET
+ | AF_AX25
+ | AF_IPX
+ deriving (Eq, Ord, Ix, Text)
+
+packFamily = index (AF_UNSPEC, AF_IPX)
+unpackFamily family = (range (AF_UNSPEC, AF_IPX))!!family
+
+#endif
+
+-- Alpha running OSF or a SPARC with SunOS, rather than Solaris.
+
+#if __alpha__ || (sun && !__svr4__)
+data SocketType =
+ Stream
+ | Datagram
+ | Raw
+ | RDM
+ | SeqPacket
+ deriving (Eq, Ord, Ix, Text)
+
+packSocketType stype = 1 + (index (Stream, SeqPacket) stype)
+#endif
+
+-- This is a Sun running Solaris rather than SunOS
+
+#if sun && __svr4__
+data SocketType =
+ Datagram
+ | Stream
+ | NC_TPI_COTS_ORD
+ | Raw
+ | RDM
+ | SeqPacket
+ deriving (Eq, Ord, Ix, Text)
+
+packSocketType stype = 1 + (index (Datagram, SeqPacket) stype)
+#endif
+
+
+#if linux
+data SocketType =
+ Stream
+ | Datagram
+ | Raw
+ | RDM
+ | SeqPacket
+ | Packet
+ deriving (Eq, Ord, Ix, Text)
+
+packSocketType stype = 1 + (index (Stream, Packet) stype)
+#endif
+
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Socket-Util]{Utility Functions}
+%* *
+%************************************************************************
+
+\begin{code}
+aNY_PORT = 0::Int
+iNADDR_ANY = ``INADDR_ANY''::_Word
+sOMAXCONN = ``SOMAXCONN''::Int
+maxListenQueue = sOMAXCONN
+
+-------------------------------------------------------------------------------
+shutdown :: Socket -> Int -> IO ()
+shutdown (MkSocket s family stype protocol status) t =
+ primIOToIO (_ccall_ shutdown s t)
+
+-------------------------------------------------------------------------------
+
+sClose :: Socket -> IO ()
+sClose (MkSocket s family stype protocol status) =
+ primIOToIO (_ccall_ close s)
+
+-------------------------------------------------------------------------------
+
+inet_addr :: String -> HostAddress
+inet_addr ipstr = unsafePerformPrimIO (_ccall_ inet_addr ipstr)
+
+-------------------------------------------------------------------------------
+
+inet_ntoa :: HostAddress -> String
+inet_ntoa haddr = unsafePerformPrimIO (
+ _casm_ ``struct in_addr addr;
+ addr.s_addr = htonl(%0);
+ %r = inet_ntoa (addr);'' haddr `thenPrimIO` \ str ->
+ returnPrimIO (_unpackPS (_packCString str)))
+
+-------------------------------------------------------------------------------
+
+sIsConnected :: Socket -> IO Bool
+sIsConnected (MkSocket s family stype protocol status) =
+ readVar status `thenST` \ value ->
+ return (value == Connected)
+
+-------------------------------------------------------------------------------
+
+sIsBound :: Socket -> IO Bool
+sIsBound (MkSocket s family stype protocol status) =
+ readVar status `thenST` \ value ->
+ return (value == Bound)
+
+-------------------------------------------------------------------------------
+
+sIsListening :: Socket -> IO Bool
+sIsListening (MkSocket s family stype protocol status) =
+ readVar status `thenST` \ value ->
+ return (value == Listening)
+
+-------------------------------------------------------------------------------
+
+sIsReadable :: Socket -> IO Bool
+sIsReadable (MkSocket s family stype protocol status) =
+ readVar status `thenST` \ value ->
+ return (value == Listening || value == Connected)
+
+-------------------------------------------------------------------------------
+
+sIsWritable :: Socket -> IO Bool
+sIsWritable = sIsReadable
+
+-------------------------------------------------------------------------------
+
+sIsAcceptable :: Socket -> IO Bool
+sIsAcceptable (MkSocket s AF_UNIX Stream protocol status) =
+ readVar status `thenST` \ value ->
+ return (value == Connected || value == Bound || value == Listening)
+sIsAcceptable (MkSocket s AF_UNIX _ protocol status) =
+ return False
+sIsAcceptable (MkSocket s _ stype protocol status) =
+ readVar status `thenST` \ value ->
+ return (value == Connected || value == Listening)
+
+-------------------------------------------------------------------------------
+
+{-
+sSetBlocking :: Socket -> Bool -> IO ()
+sIsBlocking :: Socket -> IO Bool
+-}
+
+-------------------------------------------------------------------------------
+
+allocSockAddr :: Family -> PrimIO (_MutableByteArray _RealWorld Int, Int)
+allocSockAddr AF_UNIX =
+ newCharArray (0,``sizeof(struct sockaddr_un)'') `thenPrimIO` \ ptr ->
+ let
+ (_,sz) = boundsOfByteArray ptr
+ in
+ returnPrimIO (ptr, sz)
+allocSockAddr AF_INET =
+ newCharArray (0,``sizeof(struct sockaddr_in)'') `thenPrimIO` \ ptr ->
+ let
+ (_,sz) = boundsOfByteArray ptr
+ in
+ returnPrimIO (ptr, sz)
+
+-------------------------------------------------------------------------------
+
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> PrimIO SockAddr
+unpackSockAddr arr =
+ _casm_ ``%r = ((struct sockaddr*)%0)->sa_family;'' arr `thenPrimIO` \ fam ->
+ case unpackFamily fam of
+ AF_UNIX -> unpackSockAddrUnix arr
+ AF_INET -> unpackSockAddrInet arr
+
+-------------------------------------------------------------------------------
+
+unpackSockAddrUnix :: (_MutableByteArray _RealWorld Int) -> PrimIO SockAddr
+unpackSockAddrUnix ptr =
+ _casm_ ``%r = ((struct sockaddr_un*)%0)->sun_path;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ path ->
+ returnPrimIO (SockAddrUnix path)
+
+-------------------------------------------------------------------------------
+
+unpackSockAddrInet :: (_MutableByteArray _RealWorld Int) -> PrimIO SockAddr
+unpackSockAddrInet ptr =
+ _casm_ ``%r = ntohs(((struct sockaddr_in*)%0)->sin_port);'' ptr
+ `thenPrimIO` \ port ->
+ _casm_ ``%r = ntohl(((struct sockaddr_in*)%0)->sin_addr.s_addr);'' ptr
+ `thenPrimIO` \ address ->
+ returnPrimIO (SockAddrInet port address)
+
+-------------------------------------------------------------------------------
+
+
+packSockAddr :: SockAddr -> PrimIO (_MutableByteArray _RealWorld Int)
+packSockAddr (SockAddrUnix path) =
+ allocSockAddr AF_UNIX `thenPrimIO` \ (ptr,_) ->
+ _casm_ ``(((struct sockaddr_un *)%0)->sun_family) = AF_UNIX;''
+ ptr `thenPrimIO` \ () ->
+ _casm_ ``strcpy ((((struct sockaddr_un *)%0)->sun_path),%1);''
+ ptr path `thenPrimIO` \ () ->
+ returnPrimIO ptr
+
+packSockAddr (SockAddrInet port address) =
+ allocSockAddr AF_INET `thenPrimIO` \ (ptr,_) ->
+ _casm_ ``(((struct sockaddr_in *)%0)->sin_family) = AF_INET;''
+ ptr `thenPrimIO` \ () ->
+ _casm_ ``(((struct sockaddr_in *)%0)->sin_port) = htons((int)%1);''
+ ptr port `thenPrimIO` \ () ->
+ _casm_ ``(((struct sockaddr_in *)%0)->sin_addr.s_addr) = htonl(%1);''
+ ptr address `thenPrimIO` \ () ->
+ returnPrimIO ptr
+
+-------------------------------------------------------------------------------
+
+socketToHandle :: Socket -> IO Handle
+socketToHandle (MkSocket s family stype protocol status) =
+ _casm_ ``%r = fdopen (%0, "r+");'' s `thenPrimIO` \ ptr ->
+ newEmptyMVar >>= \ handle ->
+ putMVar handle (_SocketHandle ptr False) >>
+ return handle
+
+-------------------------------------------------------------------------------
+\end{code}
diff --git a/ghc/lib/ghc/SocketPrim_mc.hi b/ghc/lib/ghc/SocketPrim_mc.hi
new file mode 100644
index 0000000000..4595611461
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim_mc.hi
@@ -0,0 +1,125 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SocketPrim where
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+data Family = AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX
+type HostAddress = _Word
+data SockAddr = SockAddrUnix [Char] | SockAddrInet Int _Word
+data Socket
+data SocketType = Stream | Datagram | Raw | RDM | SeqPacket
+aNY_PORT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (Socket, SockAddr), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LELLL)L" _N_ _N_ #-}
+bindSocket :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+connect :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+getPeerName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSocketName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+iNADDR_ANY :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inet_addr :: [Char] -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+inet_ntoa :: _Word -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listen :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+maxListenQueue :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+packFamily :: Family -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+packSockAddr :: SockAddr -> _State _RealWorld -> (_MutableByteArray _RealWorld Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packSocketType :: SocketType -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
+readSocket :: Socket -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+readSocketAll :: Socket -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LAAAL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sClose :: Socket -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(U(P)AAAA)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsBound :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsConnected :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsListening :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsReadable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsWritable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ SocketPrim sIsReadable _N_ #-}
+sOMAXCONN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+shutdown :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(P)AAAA)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socket :: Family -> SocketType -> Int -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LEAAA)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketToHandle :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)AAAA)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackFamily :: Int -> Family
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> _State _RealWorld -> (SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSocket :: Socket -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Eq SockAddr
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SockAddr -> SockAddr -> Bool), (SockAddr -> SockAddr -> Bool)] [_CONSTM_ Eq (==) (SockAddr), _CONSTM_ Eq (/=) (SockAddr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool)] [_CONSTM_ Eq (==) (SocketType), _CONSTM_ Eq (/=) (SocketType)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord SocketType}}, ((SocketType, SocketType) -> [SocketType]), ((SocketType, SocketType) -> SocketType -> Int), ((SocketType, SocketType) -> SocketType -> Bool)] [_DFUN_ Ord (SocketType), _CONSTM_ Ix range (SocketType), _CONSTM_ Ix index (SocketType), _CONSTM_ Ix inRange (SocketType)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq SocketType}}, (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> _CMP_TAG)] [_DFUN_ Eq (SocketType), _CONSTM_ Ord (<) (SocketType), _CONSTM_ Ord (<=) (SocketType), _CONSTM_ Ord (>=) (SocketType), _CONSTM_ Ord (>) (SocketType), _CONSTM_ Ord max (SocketType), _CONSTM_ Ord min (SocketType), _CONSTM_ Ord _tagCmp (SocketType)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(SocketType, [Char])]), (Int -> SocketType -> [Char] -> [Char]), ([Char] -> [([SocketType], [Char])]), ([SocketType] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (SocketType), _CONSTM_ Text showsPrec (SocketType), _CONSTM_ Text readList (SocketType), _CONSTM_ Text showList (SocketType)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/SocketPrim_mg.hi b/ghc/lib/ghc/SocketPrim_mg.hi
new file mode 100644
index 0000000000..4595611461
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim_mg.hi
@@ -0,0 +1,125 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SocketPrim where
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+data Family = AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX
+type HostAddress = _Word
+data SockAddr = SockAddrUnix [Char] | SockAddrInet Int _Word
+data Socket
+data SocketType = Stream | Datagram | Raw | RDM | SeqPacket
+aNY_PORT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (Socket, SockAddr), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LELLL)L" _N_ _N_ #-}
+bindSocket :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+connect :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+getPeerName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSocketName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+iNADDR_ANY :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inet_addr :: [Char] -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+inet_ntoa :: _Word -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listen :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+maxListenQueue :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+packFamily :: Family -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+packSockAddr :: SockAddr -> _State _RealWorld -> (_MutableByteArray _RealWorld Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packSocketType :: SocketType -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
+readSocket :: Socket -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+readSocketAll :: Socket -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LAAAL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sClose :: Socket -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(U(P)AAAA)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsBound :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsConnected :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsListening :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsReadable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsWritable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ SocketPrim sIsReadable _N_ #-}
+sOMAXCONN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+shutdown :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(P)AAAA)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socket :: Family -> SocketType -> Int -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LEAAA)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketToHandle :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)AAAA)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackFamily :: Int -> Family
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> _State _RealWorld -> (SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSocket :: Socket -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Eq SockAddr
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SockAddr -> SockAddr -> Bool), (SockAddr -> SockAddr -> Bool)] [_CONSTM_ Eq (==) (SockAddr), _CONSTM_ Eq (/=) (SockAddr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool)] [_CONSTM_ Eq (==) (SocketType), _CONSTM_ Eq (/=) (SocketType)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord SocketType}}, ((SocketType, SocketType) -> [SocketType]), ((SocketType, SocketType) -> SocketType -> Int), ((SocketType, SocketType) -> SocketType -> Bool)] [_DFUN_ Ord (SocketType), _CONSTM_ Ix range (SocketType), _CONSTM_ Ix index (SocketType), _CONSTM_ Ix inRange (SocketType)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq SocketType}}, (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> _CMP_TAG)] [_DFUN_ Eq (SocketType), _CONSTM_ Ord (<) (SocketType), _CONSTM_ Ord (<=) (SocketType), _CONSTM_ Ord (>=) (SocketType), _CONSTM_ Ord (>) (SocketType), _CONSTM_ Ord max (SocketType), _CONSTM_ Ord min (SocketType), _CONSTM_ Ord _tagCmp (SocketType)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(SocketType, [Char])]), (Int -> SocketType -> [Char] -> [Char]), ([Char] -> [([SocketType], [Char])]), ([SocketType] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (SocketType), _CONSTM_ Text showsPrec (SocketType), _CONSTM_ Text readList (SocketType), _CONSTM_ Text showList (SocketType)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/SocketPrim_mp.hi b/ghc/lib/ghc/SocketPrim_mp.hi
new file mode 100644
index 0000000000..4595611461
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim_mp.hi
@@ -0,0 +1,125 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SocketPrim where
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+data Family = AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX
+type HostAddress = _Word
+data SockAddr = SockAddrUnix [Char] | SockAddrInet Int _Word
+data Socket
+data SocketType = Stream | Datagram | Raw | RDM | SeqPacket
+aNY_PORT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (Socket, SockAddr), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LELLL)L" _N_ _N_ #-}
+bindSocket :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+connect :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+getPeerName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSocketName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+iNADDR_ANY :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inet_addr :: [Char] -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+inet_ntoa :: _Word -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listen :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+maxListenQueue :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+packFamily :: Family -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+packSockAddr :: SockAddr -> _State _RealWorld -> (_MutableByteArray _RealWorld Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packSocketType :: SocketType -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
+readSocket :: Socket -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+readSocketAll :: Socket -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LAAAL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sClose :: Socket -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(U(P)AAAA)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsBound :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsConnected :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsListening :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsReadable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsWritable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ SocketPrim sIsReadable _N_ #-}
+sOMAXCONN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+shutdown :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(P)AAAA)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socket :: Family -> SocketType -> Int -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LEAAA)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketToHandle :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)AAAA)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackFamily :: Int -> Family
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> _State _RealWorld -> (SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSocket :: Socket -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Eq SockAddr
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SockAddr -> SockAddr -> Bool), (SockAddr -> SockAddr -> Bool)] [_CONSTM_ Eq (==) (SockAddr), _CONSTM_ Eq (/=) (SockAddr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool)] [_CONSTM_ Eq (==) (SocketType), _CONSTM_ Eq (/=) (SocketType)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord SocketType}}, ((SocketType, SocketType) -> [SocketType]), ((SocketType, SocketType) -> SocketType -> Int), ((SocketType, SocketType) -> SocketType -> Bool)] [_DFUN_ Ord (SocketType), _CONSTM_ Ix range (SocketType), _CONSTM_ Ix index (SocketType), _CONSTM_ Ix inRange (SocketType)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq SocketType}}, (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> _CMP_TAG)] [_DFUN_ Eq (SocketType), _CONSTM_ Ord (<) (SocketType), _CONSTM_ Ord (<=) (SocketType), _CONSTM_ Ord (>=) (SocketType), _CONSTM_ Ord (>) (SocketType), _CONSTM_ Ord max (SocketType), _CONSTM_ Ord min (SocketType), _CONSTM_ Ord _tagCmp (SocketType)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(SocketType, [Char])]), (Int -> SocketType -> [Char] -> [Char]), ([Char] -> [([SocketType], [Char])]), ([SocketType] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (SocketType), _CONSTM_ Text showsPrec (SocketType), _CONSTM_ Text readList (SocketType), _CONSTM_ Text showList (SocketType)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/SocketPrim_p.hi b/ghc/lib/ghc/SocketPrim_p.hi
new file mode 100644
index 0000000000..4595611461
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim_p.hi
@@ -0,0 +1,125 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SocketPrim where
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+data Family = AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX
+type HostAddress = _Word
+data SockAddr = SockAddrUnix [Char] | SockAddrInet Int _Word
+data Socket
+data SocketType = Stream | Datagram | Raw | RDM | SeqPacket
+aNY_PORT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (Socket, SockAddr), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LELLL)L" _N_ _N_ #-}
+bindSocket :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+connect :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+getPeerName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSocketName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+iNADDR_ANY :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inet_addr :: [Char] -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+inet_ntoa :: _Word -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listen :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+maxListenQueue :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+packFamily :: Family -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+packSockAddr :: SockAddr -> _State _RealWorld -> (_MutableByteArray _RealWorld Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packSocketType :: SocketType -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
+readSocket :: Socket -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+readSocketAll :: Socket -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LAAAL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sClose :: Socket -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(U(P)AAAA)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsBound :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsConnected :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsListening :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsReadable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsWritable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ SocketPrim sIsReadable _N_ #-}
+sOMAXCONN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+shutdown :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(P)AAAA)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socket :: Family -> SocketType -> Int -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LEAAA)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketToHandle :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)AAAA)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackFamily :: Int -> Family
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> _State _RealWorld -> (SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSocket :: Socket -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Eq SockAddr
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SockAddr -> SockAddr -> Bool), (SockAddr -> SockAddr -> Bool)] [_CONSTM_ Eq (==) (SockAddr), _CONSTM_ Eq (/=) (SockAddr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool)] [_CONSTM_ Eq (==) (SocketType), _CONSTM_ Eq (/=) (SocketType)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord SocketType}}, ((SocketType, SocketType) -> [SocketType]), ((SocketType, SocketType) -> SocketType -> Int), ((SocketType, SocketType) -> SocketType -> Bool)] [_DFUN_ Ord (SocketType), _CONSTM_ Ix range (SocketType), _CONSTM_ Ix index (SocketType), _CONSTM_ Ix inRange (SocketType)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq SocketType}}, (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> _CMP_TAG)] [_DFUN_ Eq (SocketType), _CONSTM_ Ord (<) (SocketType), _CONSTM_ Ord (<=) (SocketType), _CONSTM_ Ord (>=) (SocketType), _CONSTM_ Ord (>) (SocketType), _CONSTM_ Ord max (SocketType), _CONSTM_ Ord min (SocketType), _CONSTM_ Ord _tagCmp (SocketType)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(SocketType, [Char])]), (Int -> SocketType -> [Char] -> [Char]), ([Char] -> [([SocketType], [Char])]), ([SocketType] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (SocketType), _CONSTM_ Text showsPrec (SocketType), _CONSTM_ Text readList (SocketType), _CONSTM_ Text showList (SocketType)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/SocketPrim_t.hi b/ghc/lib/ghc/SocketPrim_t.hi
new file mode 100644
index 0000000000..4595611461
--- /dev/null
+++ b/ghc/lib/ghc/SocketPrim_t.hi
@@ -0,0 +1,125 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SocketPrim where
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+data Family = AF_UNSPEC | AF_UNIX | AF_INET | AF_IMPLINK | AF_PUP | AF_CHAOS | AF_NS | AF_NBS | AF_ECMA | AF_DATAKIT | AF_CCITT | AF_SNA | AF_DECnet | AF_DLI | AF_LAT | AF_HYLINK | AF_APPLETALK | AF_NIT | AF_802 | AF_OSI | AF_X25 | AF_OSINET | AF_GOSSIP | AF_IPX
+type HostAddress = _Word
+data SockAddr = SockAddrUnix [Char] | SockAddrInet Int _Word
+data Socket
+data SocketType = Stream | Datagram | Raw | RDM | SeqPacket
+aNY_PORT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (Socket, SockAddr), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LELLL)L" _N_ _N_ #-}
+bindSocket :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+connect :: Socket -> SockAddr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+getPeerName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSocketName :: Socket -> _State _RealWorld -> (Either IOError13 SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)EAAA)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+iNADDR_ANY :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inet_addr :: [Char] -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+inet_ntoa :: _Word -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listen :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(LAAAL)LL" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+maxListenQueue :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+packFamily :: Family -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+packSockAddr :: SockAddr -> _State _RealWorld -> (_MutableByteArray _RealWorld Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+packSocketType :: SocketType -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_ #-}
+readSocket :: Socket -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+readSocketAll :: Socket -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LAAAL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sClose :: Socket -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(U(P)AAAA)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsBound :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsConnected :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsListening :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsReadable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(AAAAL)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sIsWritable :: Socket -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ SocketPrim sIsReadable _N_ #-}
+sOMAXCONN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+shutdown :: Socket -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(U(P)AAAA)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socket :: Family -> SocketType -> Int -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LEAAA)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketToHandle :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)AAAA)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackFamily :: Int -> Family
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+unpackSockAddr :: _MutableByteArray _RealWorld Int -> _State _RealWorld -> (SockAddr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSocket :: Socket -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Eq Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Family -> Family -> Bool), (Family -> Family -> Bool)] [_CONSTM_ Eq (==) (Family), _CONSTM_ Eq (/=) (Family)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Eq SockAddr
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SockAddr -> SockAddr -> Bool), (SockAddr -> SockAddr -> Bool)] [_CONSTM_ Eq (==) (SockAddr), _CONSTM_ Eq (/=) (SockAddr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool)] [_CONSTM_ Eq (==) (SocketType), _CONSTM_ Eq (/=) (SocketType)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ix Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Family}}, ((Family, Family) -> [Family]), ((Family, Family) -> Family -> Int), ((Family, Family) -> Family -> Bool)] [_DFUN_ Ord (Family), _CONSTM_ Ix range (Family), _CONSTM_ Ix index (Family), _CONSTM_ Ix inRange (Family)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord SocketType}}, ((SocketType, SocketType) -> [SocketType]), ((SocketType, SocketType) -> SocketType -> Int), ((SocketType, SocketType) -> SocketType -> Bool)] [_DFUN_ Ord (SocketType), _CONSTM_ Ix range (SocketType), _CONSTM_ Ix index (SocketType), _CONSTM_ Ix inRange (SocketType)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Family}}, (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Bool), (Family -> Family -> Family), (Family -> Family -> Family), (Family -> Family -> _CMP_TAG)] [_DFUN_ Eq (Family), _CONSTM_ Ord (<) (Family), _CONSTM_ Ord (<=) (Family), _CONSTM_ Ord (>=) (Family), _CONSTM_ Ord (>) (Family), _CONSTM_ Ord max (Family), _CONSTM_ Ord min (Family), _CONSTM_ Ord _tagCmp (Family)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq SocketType}}, (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> Bool), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> SocketType), (SocketType -> SocketType -> _CMP_TAG)] [_DFUN_ Eq (SocketType), _CONSTM_ Ord (<) (SocketType), _CONSTM_ Ord (<=) (SocketType), _CONSTM_ Ord (>=) (SocketType), _CONSTM_ Ord (>) (SocketType), _CONSTM_ Ord max (SocketType), _CONSTM_ Ord min (SocketType), _CONSTM_ Ord _tagCmp (SocketType)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Family
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Family, [Char])]), (Int -> Family -> [Char] -> [Char]), ([Char] -> [([Family], [Char])]), ([Family] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Family), _CONSTM_ Text showsPrec (Family), _CONSTM_ Text readList (Family), _CONSTM_ Text showList (Family)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text SocketType
+ {-# GHC_PRAGMA _M_ SocketPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(SocketType, [Char])]), (Int -> SocketType -> [Char] -> [Char]), ([Char] -> [([SocketType], [Char])]), ([SocketType] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (SocketType), _CONSTM_ Text showsPrec (SocketType), _CONSTM_ Text readList (SocketType), _CONSTM_ Text showList (SocketType)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket_mc.hi b/ghc/lib/ghc/Socket_mc.hi
new file mode 100644
index 0000000000..15476e253e
--- /dev/null
+++ b/ghc/lib/ghc/Socket_mc.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Socket where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+import SocketPrim(Socket)
+type Hostname = [Char]
+data PortID = Service [Char] | PortNumber Int | UnixSocket [Char]
+data Socket
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, [Char]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+connectTo :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listenOn :: PortID -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+recvFrom :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendTo :: [Char] -> PortID -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2121 _N_ _S_ "LSLU(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 PortID, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket_mg.hi b/ghc/lib/ghc/Socket_mg.hi
new file mode 100644
index 0000000000..15476e253e
--- /dev/null
+++ b/ghc/lib/ghc/Socket_mg.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Socket where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+import SocketPrim(Socket)
+type Hostname = [Char]
+data PortID = Service [Char] | PortNumber Int | UnixSocket [Char]
+data Socket
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, [Char]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+connectTo :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listenOn :: PortID -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+recvFrom :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendTo :: [Char] -> PortID -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2121 _N_ _S_ "LSLU(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 PortID, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket_mp.hi b/ghc/lib/ghc/Socket_mp.hi
new file mode 100644
index 0000000000..15476e253e
--- /dev/null
+++ b/ghc/lib/ghc/Socket_mp.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Socket where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+import SocketPrim(Socket)
+type Hostname = [Char]
+data PortID = Service [Char] | PortNumber Int | UnixSocket [Char]
+data Socket
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, [Char]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+connectTo :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listenOn :: PortID -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+recvFrom :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendTo :: [Char] -> PortID -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2121 _N_ _S_ "LSLU(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 PortID, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket_p.hi b/ghc/lib/ghc/Socket_p.hi
new file mode 100644
index 0000000000..15476e253e
--- /dev/null
+++ b/ghc/lib/ghc/Socket_p.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Socket where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+import SocketPrim(Socket)
+type Hostname = [Char]
+data PortID = Service [Char] | PortNumber Int | UnixSocket [Char]
+data Socket
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, [Char]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+connectTo :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listenOn :: PortID -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+recvFrom :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendTo :: [Char] -> PortID -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2121 _N_ _S_ "LSLU(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 PortID, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Socket_t.hi b/ghc/lib/ghc/Socket_t.hi
new file mode 100644
index 0000000000..15476e253e
--- /dev/null
+++ b/ghc/lib/ghc/Socket_t.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Socket where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+import SocketPrim(Socket)
+type Hostname = [Char]
+data PortID = Service [Char] | PortNumber Int | UnixSocket [Char]
+data Socket
+accept :: Socket -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, [Char]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+connectTo :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listenOn :: PortID -> _State _RealWorld -> (Either IOError13 Socket, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+recvFrom :: [Char] -> PortID -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendTo :: [Char] -> PortID -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2121 _N_ _S_ "LSLU(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+socketPort :: Socket -> _State _RealWorld -> (Either IOError13 PortID, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util.hi b/ghc/lib/ghc/Util.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util.lhs b/ghc/lib/ghc/Util.lhs
new file mode 100644
index 0000000000..7f0d40680b
--- /dev/null
+++ b/ghc/lib/ghc/Util.lhs
@@ -0,0 +1,1056 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+%
+\section[Util]{Highly random utility functions}
+
+\begin{code}
+#if defined(COMPILING_GHC)
+# include "HsVersions.h"
+# define IF_NOT_GHC(a) {--}
+#else
+# define panic error
+# define TAG_ _CMP_TAG
+# define LT_ _LT
+# define EQ_ _EQ
+# define GT_ _GT
+# define GT__ _
+# define tagCmp_ _tagCmp
+# define FAST_STRING String
+# define ASSERT(x) {-nothing-}
+# define IF_NOT_GHC(a) a
+# define COMMA ,
+#endif
+
+#ifndef __GLASGOW_HASKELL__
+# undef TAG_
+# undef LT_
+# undef EQ_
+# undef GT_
+# undef tagCmp_
+#endif
+
+module Util (
+ -- Haskell-version support
+#ifndef __GLASGOW_HASKELL__
+ tagCmp_,
+ TAG_(..),
+#endif
+ -- general list processing
+ IF_NOT_GHC(forall COMMA exists COMMA)
+ zipEqual, nOfThem, lengthExceeds, isSingleton,
+#if defined(COMPILING_GHC)
+ isIn, isn'tIn,
+#endif
+
+ -- association lists
+ assoc,
+#ifdef USE_SEMANTIQUE_STRANAL
+ clookup, clookrepl, elemIndex, (\\\),
+#endif
+
+ -- duplicate handling
+ hasNoDups, equivClasses, runs, removeDups,
+
+ -- sorting
+ IF_NOT_GHC(quicksort COMMA stableSortLt COMMA mergesort COMMA)
+ sortLt,
+ IF_NOT_GHC(mergeSort COMMA) naturalMergeSortLe, -- from Carsten
+ IF_NOT_GHC(naturalMergeSort COMMA mergeSortLe COMMA)
+
+ -- transitive closures
+ transitiveClosure,
+
+ -- accumulating
+ mapAccumL, mapAccumR, mapAccumB,
+
+ -- comparisons
+ IF_NOT_GHC(cmpString COMMA)
+#ifdef USE_FAST_STRINGS
+ cmpPString,
+#else
+ substr,
+#endif
+ -- pairs
+ IF_NOT_GHC(cfst COMMA applyToPair COMMA applyToFst COMMA)
+ IF_NOT_GHC(applyToSnd COMMA foldPair COMMA)
+ unzipWith
+
+ -- error handling
+#if defined(COMPILING_GHC)
+ , panic, pprPanic, pprTrace
+# ifdef DEBUG
+ , assertPanic
+# endif
+#endif {- COMPILING_GHC -}
+
+ -- and to make the interface self-sufficient...
+#if __HASKELL1__ < 3
+# if defined(COMPILING_GHC)
+ , Maybe(..){-.. for pragmas...-}, PrettyRep, Pretty(..)
+# else
+ , Maybe
+# endif
+#endif
+
+#ifdef USE_ATTACK_PRAGMAS
+ -- as more-or-less of a *HACK*, Util exports
+ -- many types abstractly, so that pragmas will be
+ -- able to see them (given that most modules
+ -- import Util).
+ ,
+ AbstractC,
+ ArgUsage,
+ ArgUsageInfo,
+ ArithSeqInfo,
+ ArityInfo,
+ Bag,
+ BasicLit,
+ Bind,
+ BinderInfo,
+ Binds,
+ CAddrMode,
+ CExprMacro,
+ CLabel,
+ CSeq,
+ CStmtMacro,
+ CcKind,
+ Class,
+ ClassDecl,
+ ClassOp,
+ ClassOpPragmas,
+ ClassPragmas,
+ ClosureInfo,
+ ConDecl,
+ CoreArg,
+ CoreAtom,
+ CoreBinding,
+ CoreCaseAlternatives,
+ CoreCaseDefault,
+ CoreExpr,
+ CostCentre,
+ DataPragmas,
+ DataTypeSig,
+ DefaultDecl,
+ DeforestInfo,
+ Delay,
+ Demand,
+ DemandInfo,
+ DuplicationDanger,
+ EnclosingCcDetails,
+ EndOfBlockInfo,
+ ExportFlag,
+ Expr,
+ FBConsum,
+ FBProd,
+ FBType,
+ FBTypeInfo,
+ FiniteMap,
+ FixityDecl,
+ FormSummary,
+ FullName,
+ FunOrArg,
+ GRHS,
+ GRHSsAndBinds,
+ GenPragmas,
+ GlobalSwitch,
+ HeapOffset,
+ IE,
+ Id,
+ IdDetails,
+ IdEnv(..), -- UGH
+ IdInfo,
+ IdVal,
+ IfaceImportDecl,
+ ImpStrictness,
+ ImpUnfolding,
+ ImportedInterface,
+ InPat,
+ InsideSCC,
+ Inst,
+ InstDecl,
+ InstOrigin,
+ InstTemplate,
+ InstTy,
+ InstancePragmas,
+ Interface,
+ IsDupdCC, IsCafCC,
+ LambdaFormInfo,
+ Literal,
+ MagicId,
+ MagicUnfoldingFun,
+ Match,
+ Module,
+ MonoBinds,
+ MonoType,
+ Name,
+ NamedThing(..), -- SIGH
+ OptIdInfo(..), -- SIGH
+ OrdList,
+ Outputable(..), -- SIGH
+ OverloadedLit,
+ PolyType,
+ PprStyle,
+ PrimKind,
+ PrimOp,
+ ProtoName,
+ Provenance,
+ Qual,
+ RegRelative,
+ Renaming,
+ ReturnInfo,
+ SMRep,
+ SMSpecRepKind,
+ SMUpdateKind,
+ Sequel,
+ ShortName,
+ Sig,
+ SimplCount,
+ SimplEnv,
+ SimplifierSwitch,
+ SpecEnv,
+ SpecInfo,
+ SpecialisedInstanceSig,
+ SplitUniqSupply,
+ SrcLoc,
+ StableLoc,
+ StandardFormInfo,
+ StgAtom,
+ StgBinderInfo,
+ StgBinding,
+ StgCaseAlternatives,
+ StgCaseDefault,
+ StgExpr,
+ StgRhs,
+ StrictnessInfo,
+ StubFlag,
+ SwitchResult,
+ TickType,
+ TyCon,
+ TyDecl,
+ TyVar,
+ TyVarEnv(..),
+ TyVarTemplate,
+ TypePragmas,
+ TypecheckedPat,
+ UfCostCentre,
+ UfId,
+ UnfoldEnv,
+ UnfoldItem,
+ UnfoldConApp,
+ UnfoldingCoreAlts,
+ UnfoldingCoreAtom,
+ UnfoldingCoreBinding,
+ UnfoldingCoreDefault,
+ UnfoldingCoreExpr,
+ UnfoldingDetails,
+ UnfoldingGuidance,
+ UnfoldingPrimOp,
+ UniType,
+ UniqFM,
+ Unique,
+ UniqueSupply,
+ UpdateFlag,
+ UpdateInfo,
+ VolatileLoc,
+
+#if ! OMIT_NATIVE_CODEGEN
+ Reg,
+ CodeSegment,
+ RegLoc,
+ StixReg,
+ StixTree,
+#endif
+
+ getIdUniType, typeOfBasicLit, typeOfPat,
+ getIdKind, kindOfBasicLit,
+ kindFromType,
+
+ eqId, cmpId,
+ eqName, cmpName,
+ cmpProtoName, eqProtoName,
+ cmpByLocalName, eqByLocalName,
+ eqUnique, cmpUnique,
+ showUnique,
+
+ switchIsOn,
+
+ ppNil, ppStr, ppInt, ppInteger, ppDouble,
+#if __GLASGOW_HASKELL__ >= 23
+ ppRational, --- ???
+#endif
+ cNil, cStr, cAppend, cCh, cShow,
+#if __GLASGOW_HASKELL__ >= 23
+ cPStr,
+#endif
+
+-- mkBlackHoleCLabel,
+
+ emptyBag, snocBag,
+ emptyFM,
+--OLD: emptySet,
+ nullSpecEnv,
+
+ mkUnknownSrcLoc,
+
+ pprCoreBinding, pprCoreExpr, pprTyCon, pprUniType,
+
+ tagOf_PrimOp,
+ pprPrimOp
+
+#endif {-USE_ATTACK_PRAGMAS-}
+ ) where
+
+#if defined(COMPILING_GHC)
+IMPORT_Trace
+import Pretty
+#endif
+#if __HASKELL1__ < 3
+import Maybes ( Maybe(..) )
+#endif
+
+#if defined(COMPILING_GHC)
+import Id
+import IdInfo
+import Outputable
+
+# ifdef USE_ATTACK_PRAGMAS
+
+import AbsCSyn
+import AbsSyn
+import AbsUniType
+import Bag
+import BasicLit
+import BinderInfo
+import CLabelInfo
+import CgBindery
+import CgMonad
+import CharSeq
+import ClosureInfo
+import CmdLineOpts
+import CoreSyn
+import FiniteMap
+import HsCore
+import HsPragmas
+import Inst
+import InstEnv
+import Name
+import NameTypes
+import OrdList
+import PlainCore
+import PrimOps
+import ProtoName
+import CostCentre
+import SMRep
+import SimplEnv
+import SimplMonad
+import SplitUniq
+import SrcLoc
+import StgSyn
+import TyVarEnv
+import UniqFM
+import Unique
+
+# if ! OMIT_NATIVE_CODEGEN
+import AsmRegAlloc ( Reg )
+import MachDesc
+import Stix
+# endif
+
+# endif {-USE_ATTACK_PRAGMAS-}
+
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-version-support]{Functions to help pre-1.2 versions of (non-Glasgow) Haskell}
+%* *
+%************************************************************************
+
+This is our own idea:
+\begin{code}
+#ifndef __GLASGOW_HASKELL__
+data TAG_ = LT_ | EQ_ | GT_
+
+tagCmp_ :: Ord a => a -> a -> TAG_
+tagCmp_ a b = if a == b then EQ_ else if a < b then LT_ else GT_
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-lists]{General list processing}
+%* *
+%************************************************************************
+
+Quantifiers are not standard in Haskell. The following fill in the gap.
+
+\begin{code}
+forall :: (a -> Bool) -> [a] -> Bool
+forall pred [] = True
+forall pred (x:xs) = pred x && forall pred xs
+
+exists :: (a -> Bool) -> [a] -> Bool
+exists pred [] = False
+exists pred (x:xs) = pred x || exists pred xs
+\end{code}
+
+A paranoid @zip@ that checks the lists are of equal length.
+Alastair Reid thinks this should only happen if DEBUGging on;
+hey, why not?
+
+\begin{code}
+zipEqual :: [a] -> [b] -> [(a,b)]
+
+#ifndef DEBUG
+zipEqual a b = zip a b
+#else
+zipEqual [] [] = []
+zipEqual (a:as) (b:bs) = (a,b) : zipEqual as bs
+zipEqual as bs = panic "zipEqual: unequal lists"
+#endif
+\end{code}
+
+\begin{code}
+nOfThem :: Int -> a -> [a]
+nOfThem n thing = take n (repeat thing)
+
+lengthExceeds :: [a] -> Int -> Bool
+
+[] `lengthExceeds` n = 0 > n
+(x:xs) `lengthExceeds` n = (1 > n) || (xs `lengthExceeds` (n - 1))
+
+isSingleton :: [a] -> Bool
+
+isSingleton [x] = True
+isSingleton _ = False
+\end{code}
+
+Debugging/specialising versions of \tr{elem} and \tr{notElem}
+\begin{code}
+#if defined(COMPILING_GHC)
+isIn, isn'tIn :: (Eq a) => String -> a -> [a] -> Bool
+
+# ifndef DEBUG
+isIn msg x ys = elem__ x ys
+isn'tIn msg x ys = notElem__ x ys
+
+--these are here to be SPECIALIZEd (automagically)
+elem__ _ [] = False
+elem__ x (y:ys) = x==y || elem__ x ys
+
+notElem__ x [] = True
+notElem__ x (y:ys) = x /= y && notElem__ x ys
+
+# else {- DEBUG -}
+isIn msg x ys
+ = elem ILIT(0) x ys
+ where
+ elem i _ [] = False
+ elem i x (y:ys)
+ | i _GE_ ILIT(100) = panic ("Over-long elem in: " ++ msg)
+ | otherwise = x == y || elem (i _ADD_ ILIT(1)) x ys
+
+isn'tIn msg x ys
+ = notElem ILIT(0) x ys
+ where
+ notElem i x [] = True
+ notElem i x (y:ys)
+ | i _GE_ ILIT(100) = panic ("Over-long notElem in: " ++ msg)
+ | otherwise = x /= y && notElem (i _ADD_ ILIT(1)) x ys
+
+# endif {- DEBUG -}
+
+# ifdef USE_ATTACK_PRAGMAS
+{-# SPECIALIZE isIn :: String -> BasicLit -> [BasicLit] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> Class -> [Class] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> Id -> [Id] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> Int -> [Int] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> MagicId -> [MagicId] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> Name -> [Name] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> TyCon -> [TyCon] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> TyVar -> [TyVar] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> TyVarTemplate -> [TyVarTemplate] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> Unique -> [Unique] -> Bool #-}
+{-# SPECIALIZE isIn :: String -> _PackedString -> [_PackedString] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> (Id, Id) -> [(Id, Id)] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> Int -> [Int] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> Id -> [Id] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> MagicId -> [MagicId] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> TyCon -> [TyCon] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> TyVar -> [TyVar] -> Bool #-}
+{-# SPECIALIZE isn'tIn :: String -> TyVarTemplate -> [TyVarTemplate] -> Bool #-}
+# endif
+
+#endif {- COMPILING_GHC -}
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-assoc]{Association lists}
+%* *
+%************************************************************************
+
+See also @assocMaybe@ and @mkLookupFun@ in module @Maybes@.
+
+\begin{code}
+assoc :: (Eq a) => String -> [(a, b)] -> a -> b
+
+assoc crash_msg lst key
+ = if (null res)
+ then panic ("Failed in assoc: " ++ crash_msg)
+ else head res
+ where res = [ val | (key', val) <- lst, key == key']
+
+#if defined(COMPILING_GHC)
+# ifdef USE_ATTACK_PRAGMAS
+{-# SPECIALIZE assoc :: String -> [(Id, a)] -> Id -> a #-}
+{-# SPECIALIZE assoc :: String -> [(Class, a)] -> Class -> a #-}
+{-# SPECIALIZE assoc :: String -> [(Name, a)] -> Name -> a #-}
+{-# SPECIALIZE assoc :: String -> [(PrimKind, a)] -> PrimKind -> a #-}
+{-# SPECIALIZE assoc :: String -> [(String, a)] -> String -> a #-}
+{-# SPECIALIZE assoc :: String -> [(TyCon, a)] -> TyCon -> a #-}
+{-# SPECIALIZE assoc :: String -> [(TyVar, a)] -> TyVar -> a #-}
+{-# SPECIALIZE assoc :: String -> [(TyVarTemplate, a)] -> TyVarTemplate -> a #-}
+{-# SPECIALIZE assoc :: String -> [(UniType, a)] -> UniType -> a #-}
+{-# SPECIALIZE assoc :: String -> [(_PackedString, a)] -> _PackedString -> a #-}
+# endif
+#endif
+\end{code}
+
+Given a list of associations one wants to look for the most recent
+association for a given key. A couple of functions follow that cover
+the simple lookup, the lookup with a default value when the key not
+found, and two corresponding functions operating on unzipped lists
+of associations.
+
+\begin{code}
+#ifdef USE_SEMANTIQUE_STRANAL
+
+clookup :: (Eq a) => [a] -> [b] -> a -> b
+clookup = clookupElse (panic "clookup")
+ where
+ -- clookupElse :: (Eq a) => b -> [a] -> [b] -> a -> b
+ clookupElse d [] [] a = d
+ clookupElse d (x:xs) (y:ys) a
+ | a==x = y
+ | True = clookupElse d xs ys a
+#endif
+\end{code}
+
+The following routine given a curried environment replaces the entry
+labelled with a given name with a new value given. The new value is
+given in the form of a function that allows to transform the old entry.
+
+Assumption is that the list of labels contains the given one and that
+the two lists of the curried environment are of equal lengths.
+
+\begin{code}
+#ifdef USE_SEMANTIQUE_STRANAL
+clookrepl :: Eq a => [a] -> [b] -> a -> (b -> b) -> [b]
+clookrepl (a:as) (b:bs) x f
+ = if x == a then (f b:bs) else (b:clookrepl as bs x f)
+#endif
+\end{code}
+
+The following returns the index of an element in a list.
+
+\begin{code}
+#ifdef USE_SEMANTIQUE_STRANAL
+
+elemIndex :: Eq a => [a] -> a -> Int
+elemIndex as x = indx as x 0
+ where
+ indx :: Eq a => [a] -> a -> Int -> Int
+ indx (a:as) x n = if a==x then n else indx as x ((n+1)::Int)
+# if defined(COMPILING_GHC)
+ indx [] x n = pprPanic "element not in list in elemIndex" ppNil
+# else
+ indx [] x n = error "element not in list in elemIndex"
+# endif
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-dups]{Duplicate-handling}
+%* *
+%************************************************************************
+
+List difference (non-associative). In the result of @xs \\\ ys@, the
+first occurrence of each element of ys in turn (if any) has been
+removed from xs. Thus, @(xs ++ ys) \\\ xs == ys@. This function is
+a copy of @\\@ from report 1.1 and is added to overshade the buggy
+version from the 1.0 version of Haskell.
+
+This routine can be removed after the compiler bootstraps itself and
+a proper @\\@ is can be applied.
+
+\begin{code}
+#ifdef USE_SEMANTIQUE_STRANAL
+(\\\) :: (Eq a) => [a] -> [a] -> [a]
+(\\\) = foldl del
+ where
+ [] `del` _ = []
+ (x:xs) `del` y
+ | x == y = xs
+ | otherwise = x : xs `del` y
+#endif
+\end{code}
+
+\begin{code}
+hasNoDups :: (Eq a) => [a] -> Bool
+hasNoDups xs = f [] xs
+ where
+ f seen_so_far [] = True
+ f seen_so_far (x:xs) = if x `is_elem` seen_so_far then
+ False
+ else
+ f (x:seen_so_far) xs
+
+#if defined(COMPILING_GHC)
+ is_elem = isIn "hasNoDups"
+#else
+ is_elem = elem
+#endif
+#if defined(COMPILING_GHC)
+# ifdef USE_ATTACK_PRAGMAS
+{-# SPECIALIZE hasNoDups :: [TyVar] -> Bool #-}
+# endif
+#endif
+\end{code}
+
+\begin{code}
+equivClasses :: (a -> a -> TAG_) -- Comparison
+ -> [a]
+ -> [[a]]
+
+equivClasses cmp stuff@[] = []
+equivClasses cmp stuff@[item] = [stuff]
+equivClasses cmp items
+ = runs eq (sortLt lt items)
+ where
+ eq a b = case cmp a b of { EQ_ -> True; _ -> False }
+ lt a b = case cmp a b of { LT_ -> True; _ -> False }
+\end{code}
+
+The first cases in @equivClasses@ above are just to cut to the point
+more quickly...
+
+@runs@ groups a list into a list of lists, each sublist being a run of
+identical elements of the input list. It is passed a predicate @p@ which
+tells when two elements are equal.
+
+\begin{code}
+runs :: (a -> a -> Bool) -- Equality
+ -> [a]
+ -> [[a]]
+
+runs p [] = []
+runs p (x:xs) = case (span (p x) xs) of
+ (first, rest) -> (x:first) : (runs p rest)
+\end{code}
+
+\begin{code}
+removeDups :: (a -> a -> TAG_) -- Comparison function
+ -> [a]
+ -> ([a], -- List with no duplicates
+ [[a]]) -- List of duplicate groups. One representative from
+ -- each group appears in the first result
+
+removeDups cmp [] = ([], [])
+removeDups cmp [x] = ([x],[])
+removeDups cmp xs
+ = case (mapAccumR collect_dups [] (equivClasses cmp xs)) of { (dups, xs') ->
+ (xs', dups) }
+ where
+ collect_dups dups_so_far [x] = (dups_so_far, x)
+ collect_dups dups_so_far dups@(x:xs) = (dups:dups_so_far, x)
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-sorting]{Sorting}
+%* *
+%************************************************************************
+
+%************************************************************************
+%* *
+\subsubsection[Utils-quicksorting]{Quicksorts}
+%* *
+%************************************************************************
+
+\begin{code}
+-- tail-recursive, etc., "quicker sort" [as per Meira thesis]
+quicksort :: (a -> a -> Bool) -- Less-than predicate
+ -> [a] -- Input list
+ -> [a] -- Result list in increasing order
+
+quicksort lt [] = []
+quicksort lt [x] = [x]
+quicksort lt (x:xs) = split x [] [] xs
+ where
+ split x lo hi [] = quicksort lt lo ++ (x : quicksort lt hi)
+ split x lo hi (y:ys) | y `lt` x = split x (y:lo) hi ys
+ | True = split x lo (y:hi) ys
+\end{code}
+
+Quicksort variant from Lennart's Haskell-library contribution. This
+is a {\em stable} sort.
+
+\begin{code}
+stableSortLt = sortLt -- synonym; when we want to highlight stable-ness
+
+sortLt :: (a -> a -> Bool) -- Less-than predicate
+ -> [a] -- Input list
+ -> [a] -- Result list
+
+sortLt lt l = qsort lt l []
+
+-- qsort is stable and does not concatenate.
+qsort :: (a -> a -> Bool) -- Less-than predicate
+ -> [a] -- xs, Input list
+ -> [a] -- r, Concatenate this list to the sorted input list
+ -> [a] -- Result = sort xs ++ r
+
+qsort lt [] r = r
+qsort lt [x] r = x:r
+qsort lt (x:xs) r = qpart lt x xs [] [] r
+
+-- qpart partitions and sorts the sublists
+-- rlt contains things less than x,
+-- rge contains the ones greater than or equal to x.
+-- Both have equal elements reversed with respect to the original list.
+
+qpart lt x [] rlt rge r =
+ -- rlt and rge are in reverse order and must be sorted with an
+ -- anti-stable sorting
+ rqsort lt rlt (x : rqsort lt rge r)
+
+qpart lt x (y:ys) rlt rge r =
+ if lt y x then
+ -- y < x
+ qpart lt x ys (y:rlt) rge r
+ else
+ -- y >= x
+ qpart lt x ys rlt (y:rge) r
+
+-- rqsort is as qsort but anti-stable, i.e. reverses equal elements
+rqsort lt [] r = r
+rqsort lt [x] r = x:r
+rqsort lt (x:xs) r = rqpart lt x xs [] [] r
+
+rqpart lt x [] rle rgt r =
+ qsort lt rle (x : qsort lt rgt r)
+
+rqpart lt x (y:ys) rle rgt r =
+ if lt x y then
+ -- y > x
+ rqpart lt x ys rle (y:rgt) r
+ else
+ -- y <= x
+ rqpart lt x ys (y:rle) rgt r
+\end{code}
+
+%************************************************************************
+%* *
+\subsubsection[Utils-dull-mergesort]{A rather dull mergesort}
+%* *
+%************************************************************************
+
+\begin{code}
+mergesort :: (a -> a -> TAG_) -> [a] -> [a]
+
+mergesort cmp xs = merge_lists (split_into_runs [] xs)
+ where
+ a `le` b = case cmp a b of { LT_ -> True; EQ_ -> True; GT__ -> False }
+ a `ge` b = case cmp a b of { LT_ -> False; EQ_ -> True; GT__ -> True }
+
+ split_into_runs [] [] = []
+ split_into_runs run [] = [run]
+ split_into_runs [] (x:xs) = split_into_runs [x] xs
+ split_into_runs [r] (x:xs) | x `ge` r = split_into_runs [r,x] xs
+ split_into_runs rl@(r:rs) (x:xs) | x `le` r = split_into_runs (x:rl) xs
+ | True = rl : (split_into_runs [x] xs)
+
+ merge_lists [] = []
+ merge_lists (x:xs) = merge x (merge_lists xs)
+
+ merge [] ys = ys
+ merge xs [] = xs
+ merge xl@(x:xs) yl@(y:ys)
+ = case cmp x y of
+ EQ_ -> x : y : (merge xs ys)
+ LT_ -> x : (merge xs yl)
+ GT__ -> y : (merge xl ys)
+\end{code}
+
+%************************************************************************
+%* *
+\subsubsection[Utils-Carsten-mergesort]{A mergesort from Carsten}
+%* *
+%************************************************************************
+
+\begin{display}
+Date: Mon, 3 May 93 20:45:23 +0200
+From: Carsten Kehler Holst <kehler@cs.chalmers.se>
+To: partain@dcs.gla.ac.uk
+Subject: natural merge sort beats quick sort [ and it is prettier ]
+
+ Here a piece of Haskell code that I'm rather fond of. See it as an
+attempt to get rid of the ridiculous quick-sort rutine. group is quite
+useful by itself I think it was John's idea originally though I
+believe the lazy version is due to me [surprisingly complicated].
+gamma [used to be called] called gamma because I got inspired by the Gamma calculus. It
+is not very close to the calculus but does behave less sequential that
+both foldr and foldl. One could imagine a version of gamma that took a
+unit element as well thereby avoiding the problem with empty lists.
+
+I've tried this code against
+
+ 1) insertion sort - as provided by haskell
+ 2) the normal implementation of quick sort
+ 3) a deforested version of quick sort due to Jan Sparud
+ 4) a super-optimized-quick-sort of Lennarts
+
+If the list is partially sorted both merge sort and in particular
+natural merge sort wins. If the list is random [ average length of
+rising subsequences = approx 2 ] mergesort still wins and natural
+merge sort is marginally beeten by lennart's soqs. The space
+consumption of merge sort is a bit worse than Lennarts quick sort
+approx a factor of 2. And a lot worse if Sparud's bug-fix [see his
+fpca article ] isn't used because of group.
+
+have fun
+Carsten
+\end{display}
+
+\begin{code}
+group :: (a -> a -> Bool) -> [a] -> [[a]]
+group p [] = [[]]
+group p (x:xs) =
+ let ((h1:t1):tt1) = group p xs
+ (t,tt) = if null xs then ([],[]) else
+ if x `p` h1 then (h1:t1,tt1) else
+ ([], (h1:t1):tt1)
+ in ((x:t):tt)
+
+generalMerge :: (a -> a -> Bool) -> [a] -> [a] -> [a]
+generalMerge p xs [] = xs
+generalMerge p [] ys = ys
+generalMerge p (x:xs) (y:ys) | x `p` y = x : generalMerge p xs (y:ys)
+ | y `p` x = y : generalMerge p (x:xs) ys
+
+-- gamma is now called balancedFold
+
+balancedFold :: (a -> a -> a) -> [a] -> a
+balancedFold f [] = error "can't reduce an empty list using balancedFold"
+balancedFold f [x] = x
+balancedFold f l = balancedFold f (balancedFold' f l)
+
+balancedFold' :: (a -> a -> a) -> [a] -> [a]
+balancedFold' f (x:y:xs) = f x y : balancedFold' f xs
+balancedFold' f xs = xs
+
+generalMergeSort p = balancedFold (generalMerge p) . map (:[])
+generalNaturalMergeSort p = balancedFold (generalMerge p) . group p
+
+mergeSort, naturalMergeSort :: Ord a => [a] -> [a]
+
+mergeSort = generalMergeSort (<=)
+naturalMergeSort = generalNaturalMergeSort (<=)
+
+mergeSortLe le = generalMergeSort le
+naturalMergeSortLe le = generalNaturalMergeSort le
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-transitive-closure]{Transitive closure}
+%* *
+%************************************************************************
+
+This algorithm for transitive closure is straightforward, albeit quadratic.
+
+\begin{code}
+transitiveClosure :: (a -> [a]) -- Successor function
+ -> (a -> a -> Bool) -- Equality predicate
+ -> [a]
+ -> [a] -- The transitive closure
+
+transitiveClosure succ eq xs
+ = do [] xs
+ where
+ do done [] = done
+ do done (x:xs) | x `is_in` done = do done xs
+ | otherwise = do (x:done) (succ x ++ xs)
+
+ x `is_in` [] = False
+ x `is_in` (y:ys) | eq x y = True
+ | otherwise = x `is_in` ys
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-accum]{Accumulating}
+%* *
+%************************************************************************
+
+@mapAccumL@ behaves like a combination
+of @map@ and @foldl@;
+it applies a function to each element of a list, passing an accumulating
+parameter from left to right, and returning a final value of this
+accumulator together with the new list.
+
+\begin{code}
+mapAccumL :: (acc -> x -> (acc, y)) -- Function of elt of input list
+ -- and accumulator, returning new
+ -- accumulator and elt of result list
+ -> acc -- Initial accumulator
+ -> [x] -- Input list
+ -> (acc, [y]) -- Final accumulator and result list
+
+mapAccumL f b [] = (b, [])
+mapAccumL f b (x:xs) = (b'', x':xs') where
+ (b', x') = f b x
+ (b'', xs') = mapAccumL f b' xs
+\end{code}
+
+@mapAccumR@ does the same, but working from right to left instead. Its type is
+the same as @mapAccumL@, though.
+
+\begin{code}
+mapAccumR :: (acc -> x -> (acc, y)) -- Function of elt of input list
+ -- and accumulator, returning new
+ -- accumulator and elt of result list
+ -> acc -- Initial accumulator
+ -> [x] -- Input list
+ -> (acc, [y]) -- Final accumulator and result list
+
+mapAccumR f b [] = (b, [])
+mapAccumR f b (x:xs) = (b'', x':xs') where
+ (b'', x') = f b' x
+ (b', xs') = mapAccumR f b xs
+\end{code}
+
+Here is the bi-directional version, that works from both left and right.
+
+\begin{code}
+mapAccumB :: (accl -> accr -> x -> (accl, accr,y))
+ -- Function of elt of input list
+ -- and accumulator, returning new
+ -- accumulator and elt of result list
+ -> accl -- Initial accumulator from left
+ -> accr -- Initial accumulator from right
+ -> [x] -- Input list
+ -> (accl, accr, [y]) -- Final accumulators and result list
+
+mapAccumB f a b [] = (a,b,[])
+mapAccumB f a b (x:xs) = (a'',b'',y:ys)
+ where
+ (a',b'',y) = f a b' x
+ (a'',b',ys) = mapAccumB f a' b xs
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-comparison]{Comparisons}
+%* *
+%************************************************************************
+
+See also @tagCmp_@ near the versions-compatibility section.
+
+\begin{code}
+cmpString :: String -> String -> TAG_
+
+cmpString [] [] = EQ_
+cmpString (x:xs) (y:ys) = if x == y then cmpString xs ys
+ else if x < y then LT_
+ else GT_
+cmpString [] ys = LT_
+cmpString xs [] = GT_
+
+cmpString _ _ = case (panic "cmpString") of { s -> -- BUG avoidance: never get here
+ cmpString s "" -- will never get here
+ }
+\end{code}
+
+\begin{code}
+#ifdef USE_FAST_STRINGS
+cmpPString :: FAST_STRING -> FAST_STRING -> TAG_
+
+cmpPString x y
+ = case (_tagCmp x y) of { _LT -> LT_ ; _EQ -> EQ_ ; _GT -> GT_ }
+#endif
+\end{code}
+
+\begin{code}
+#ifndef USE_FAST_STRINGS
+substr :: FAST_STRING -> Int -> Int -> FAST_STRING
+
+substr str beg end
+ = ASSERT (beg >= 0 && beg <= end)
+ take (end - beg + 1) (drop beg str)
+#endif
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-pairs]{Pairs}
+%* *
+%************************************************************************
+
+The following are curried versions of @fst@ and @snd@.
+
+\begin{code}
+cfst :: a -> b -> a -- stranal-sem only (Note)
+cfst x y = x
+\end{code}
+
+The following provide us higher order functions that, when applied
+to a function, operate on pairs.
+
+\begin{code}
+applyToPair :: ((a -> c),(b -> d)) -> (a,b) -> (c,d)
+applyToPair (f,g) (x,y) = (f x, g y)
+
+applyToFst :: (a -> c) -> (a,b)-> (c,b)
+applyToFst f (x,y) = (f x,y)
+
+applyToSnd :: (b -> d) -> (a,b) -> (a,d)
+applyToSnd f (x,y) = (x,f y)
+
+foldPair :: (a->a->a,b->b->b) -> (a,b) -> [(a,b)] -> (a,b)
+foldPair fg ab [] = ab
+foldPair fg@(f,g) ab ((a,b):abs) = (f a u,g b v)
+ where (u,v) = foldPair fg ab abs
+\end{code}
+
+\begin{code}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+unzipWith f pairs = map ( \ (a, b) -> f a b ) pairs
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[Utils-errors]{Error handling}
+%* *
+%************************************************************************
+
+\begin{code}
+#if defined(COMPILING_GHC)
+panic x = error ("panic! (the `impossible' happened):\n\t"
+ ++ x ++ "\n\n"
+ ++ "Please report it as a compiler bug "
+ ++ "to glasgow-haskell-bugs@dcs.glasgow.ac.uk.\n\n" )
+
+pprPanic heading pretty_msg = panic (heading++(ppShow 80 pretty_msg))
+
+pprTrace heading pretty_msg = trace (heading++(ppShow 80 pretty_msg))
+
+# ifdef DEBUG
+assertPanic :: String -> Int -> a
+assertPanic file line = panic ("ASSERT failed! file "++file++", line "++show line)
+# endif
+#endif {- COMPILING_GHC -}
+\end{code}
diff --git a/ghc/lib/ghc/Util_mc.hi b/ghc/lib/ghc/Util_mc.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_mc.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util_mg.hi b/ghc/lib/ghc/Util_mg.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_mg.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util_mp.hi b/ghc/lib/ghc/Util_mp.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_mp.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util_mr.hi b/ghc/lib/ghc/Util_mr.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_mr.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util_mt.hi b/ghc/lib/ghc/Util_mt.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_mt.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util_p.hi b/ghc/lib/ghc/Util_p.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_p.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/ghc/Util_t.hi b/ghc/lib/ghc/Util_t.hi
new file mode 100644
index 0000000000..1bab8f1f20
--- /dev/null
+++ b/ghc/lib/ghc/Util_t.hi
@@ -0,0 +1,65 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Util where
+applyToFst :: (a -> b) -> (a, c) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: u0) (u5 :: u2) -> let {(u6 :: u1) = _APP_ u3 [ u4 ]} in _!_ _TUP_2 [u1, u2] [u6, u5] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1) (u4 :: (u0, u2)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u2) -> let {(u7 :: u1) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u7, u6]; _NO_DEFLT_ } _N_ #-}
+applyToPair :: (a -> c, b -> d) -> (a, b) -> (c, d)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+applyToSnd :: (a -> c) -> (b, a) -> (b, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1) (u5 :: u0) -> let {(u6 :: u2) = _APP_ u3 [ u5 ]} in _!_ _TUP_2 [u1, u2] [u4, u6] _N_} _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: (u1, u0)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u1) (u6 :: u0) -> let {(u7 :: u2) = _APP_ u3 [ u6 ]} in _!_ _TUP_2 [u1, u2] [u5, u7]; _NO_DEFLT_ } _N_ #-}
+assoc :: Eq a => [Char] -> [(a, b)] -> a -> b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1212 _N_ _S_ "LLSL" _N_ _N_ #-}
+cfst :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+cmpString :: [Char] -> [Char] -> _CMP_TAG
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+equivClasses :: (a -> a -> _CMP_TAG) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+exists :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldPair :: (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+forall :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+hasNoDups :: Eq a => [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+isSingleton :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lengthExceeds :: [a] -> Int -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mapAccumB :: (b -> c -> a -> (b, c, d)) -> b -> c -> [a] -> (b, c, [d])
+ {-# GHC_PRAGMA _A_ 4 _U_ 2221 _N_ _S_ "LLLS" _N_ _N_ #-}
+mapAccumL :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mapAccumR :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+mergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util mergeSortLe { u0 } [ ua ] _N_ #-}
+mergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+mergesort :: (a -> a -> _CMP_TAG) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+nOfThem :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+naturalMergeSort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> let {(ua :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ Util naturalMergeSortLe { u0 } [ ua ] _N_ #-}
+naturalMergeSortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+quicksort :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+removeDups :: (a -> a -> _CMP_TAG) -> [a] -> ([a], [[a]])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+runs :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+sortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+stableSortLt :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ Util sortLt _N_ #-}
+substr :: [Char] -> Int -> Int -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+transitiveClosure :: (a -> [a]) -> (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+unzipWith :: (a -> b -> c) -> [(a, b)] -> [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+zipEqual :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps.hi b/ghc/lib/glaExts/ByteOps.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps.lhs b/ghc/lib/glaExts/ByteOps.lhs
new file mode 100644
index 0000000000..ee97cb92df
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps.lhs
@@ -0,0 +1,147 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1993-1994
+%
+\section[ByteOps]{Convert to/from ``bytes''; to support @Native@ class}
+
+This mimics some code that comes with HBC.
+
+\begin{code}
+module ByteOps (
+ longToBytes,
+ intToBytes,
+ shortToBytes,
+ floatToBytes,
+ doubleToBytes,
+
+ bytesToLong,
+ bytesToInt,
+ bytesToShort,
+ bytesToFloat,
+ bytesToDouble
+ ) where
+
+import Cls
+import Core
+import IInt
+import IFloat
+import IDouble
+import List ( (++), foldr )
+import Prel ( chr )
+import PS ( _PackedString, _unpackPS )
+import TyArray ( Array(..) )
+import PreludeGlaST
+import Text
+\end{code}
+
+\tr{xxxToBytes} prepends an \tr{xxx} to a byte stream.
+\tr{bytesToXxx} snaffles an \tr{xxx} from a byte stream,
+also returning the rest of the stream.
+\begin{code}
+type Bytes = [Char]
+
+longToBytes :: Int -> Bytes -> Bytes
+intToBytes :: Int -> Bytes -> Bytes
+shortToBytes :: Int -> Bytes -> Bytes
+floatToBytes :: Float -> Bytes -> Bytes
+doubleToBytes :: Double -> Bytes -> Bytes
+
+bytesToLong :: Bytes -> (Int, Bytes)
+bytesToInt :: Bytes -> (Int, Bytes)
+bytesToShort :: Bytes -> (Int, Bytes)
+bytesToFloat :: Bytes -> (Float, Bytes)
+bytesToDouble :: Bytes -> (Double, Bytes)
+\end{code}
+
+Here we go.
+\begin{code}
+#define XXXXToBytes(type,xxxx,xxxx__) \
+xxxx i stream \
+ = let \
+ long_bytes {- DANGEROUS! -} \
+ = unsafePerformPrimIO ( \
+ {- Allocate a wad of memory to put the "long"'s bytes. \
+ Let's hope 32 bytes will be big enough. -} \
+ newCharArray (0::Int, 31) `thenPrimIO` \ arr# -> \
+ \
+ {- Call out to C to do the dirty deed: -} \
+ _casm_ ``%r = xxxx__ ((type)%0, (unsigned char *)%1);'' i arr# \
+ `thenPrimIO` \ num_bytes -> \
+ \
+ unpack arr# 0 (num_bytes - 1) \
+ ) \
+ in \
+ long_bytes ++ stream
+
+XXXXToBytes(long,longToBytes,long2bytes__)
+XXXXToBytes(int,intToBytes,int2bytes__)
+XXXXToBytes(short,shortToBytes,short2bytes__)
+XXXXToBytes(float,floatToBytes,float2bytes__)
+XXXXToBytes(double,doubleToBytes,double2bytes__)
+\end{code}
+
+\begin{code}
+unpack :: _MutableByteArray _RealWorld Int -> Int -> Int -> PrimIO [Char]
+
+unpack arr# curr last
+ = if curr > last then
+ returnPrimIO []
+ else
+ readCharArray arr# curr `thenPrimIO` \ ch ->
+ unpack arr# (curr + 1) last `thenPrimIO` \ rest ->
+ returnPrimIO (ch : rest)
+\end{code}
+
+Now we go the other way. The paranoia checking (absent) leaves
+something to be desired. Really have to be careful on
+funny-sized things like \tr{shorts}...
+\begin{code}
+#define bytesToXXXX(htype,xxxx,alloc,read,xxxx__) \
+xxxx stream \
+ = unsafePerformPrimIO ( \
+ {- slam (up to) 32 bytes [random] from the stream into an array -} \
+ newCharArray (0::Int, 31) `thenPrimIO` \ arr# -> \
+ pack arr# 0 31 stream `seqPrimIO` \
+ \
+ {- make a one-element array to hold the result: -} \
+ alloc (0::Int, 0) `thenPrimIO` \ res# -> \
+ \
+ {- call the C to do the business: -} \
+ _casm_ ``%r = xxxx__ ((P_)%0, (htype *) %1);'' arr# res# \
+ `thenPrimIO` \ num_bytes -> \
+ \
+ {- read the result out of "res#": -} \
+ read res# (0::Int) `thenPrimIO` \ i -> \
+ \
+ {- box the result and drop the number of bytes taken: -} \
+ returnPrimIO (i, my_drop num_bytes stream) \
+ )
+
+bytesToXXXX(I_,bytesToLong,newIntArray,readIntArray,bytes2long__)
+bytesToXXXX(I_,bytesToInt,newIntArray,readIntArray,bytes2int__)
+bytesToXXXX(I_,bytesToShort,newIntArray,readIntArray,bytes2short__)
+bytesToXXXX(StgFloat,bytesToFloat,newFloatArray,readFloatArray,bytes2float__)
+bytesToXXXX(StgDouble,bytesToDouble,newDoubleArray,readDoubleArray,bytes2double__)
+\end{code}
+
+\begin{code}
+pack :: _MutableByteArray _RealWorld Int -> Int -> Int -> [Char] -> PrimIO ()
+
+pack arr# curr last from_bytes
+ = if curr > last then
+ returnPrimIO ()
+ else
+ case from_bytes of
+ [] -> writeCharArray arr# curr (chr 0)
+
+ (from_byte : xs) ->
+ writeCharArray arr# curr from_byte `seqPrimIO`
+ pack arr# (curr + 1) last xs
+
+-- more cavalier than usual; we know there will be enough bytes:
+
+my_drop :: Int -> [a] -> [a]
+
+my_drop 0 xs = xs
+--my_drop _ [] = []
+my_drop m (_:xs) = my_drop (m - 1) xs
+\end{code}
diff --git a/ghc/lib/glaExts/ByteOps_mc.hi b/ghc/lib/glaExts/ByteOps_mc.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_mc.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps_mg.hi b/ghc/lib/glaExts/ByteOps_mg.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_mg.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps_mp.hi b/ghc/lib/glaExts/ByteOps_mp.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_mp.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps_mr.hi b/ghc/lib/glaExts/ByteOps_mr.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_mr.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps_mt.hi b/ghc/lib/glaExts/ByteOps_mt.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_mt.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps_p.hi b/ghc/lib/glaExts/ByteOps_p.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_p.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/ByteOps_t.hi b/ghc/lib/glaExts/ByteOps_t.hi
new file mode 100644
index 0000000000..88faa71fd5
--- /dev/null
+++ b/ghc/lib/glaExts/ByteOps_t.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ByteOps where
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple2)
+bytesToDouble :: [Char] -> (Double, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToFloat :: [Char] -> (Float, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToInt :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToLong :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShort :: [Char] -> (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+doubleToBytes :: Double -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatToBytes :: Float -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+intToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+longToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/Jmakefile b/ghc/lib/glaExts/Jmakefile
new file mode 100644
index 0000000000..6dee51e38a
--- /dev/null
+++ b/ghc/lib/glaExts/Jmakefile
@@ -0,0 +1,8 @@
+/* this is a standalone Jmakefile; NOT part of ghc "make world" */
+
+LitStuffNeededHere(docs depend)
+InfoStuffNeededHere(docs)
+
+/* LIT2LATEX_OPTS=-tbird */
+
+LitDocRootTargetWithNamedOutput(lazyimp,lit,lazyimp-standalone)
diff --git a/ghc/lib/glaExts/MainIO.lhs b/ghc/lib/glaExts/MainIO.lhs
new file mode 100644
index 0000000000..20c8f89a7c
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO.lhs
@@ -0,0 +1,25 @@
+This is the mainPrimIO that must be used for Haskell~1.2.
+
+\begin{code}
+module Main ( mainPrimIO ) where
+
+import PreludeMainIO_help -- for type of "Main.main"
+import PreludeDialogueIO ( requestToPrimIO )
+import TyIO
+import UTypes ( Bin )
+
+mainPrimIO :: PrimIO ()
+mainPrimIO s = case (requestToPrimIO main s) of
+ ( (), s2@(S# _) ) -> ( (), s2 )
+\end{code}
+
+OLD COMMENT:
+
+Nota Bene! @mainIO@ is written as an explicit function, rather than
+by saying: @mainIO = requestToIO main@ so that the code generator
+recognises @mainIO@ as a {\em function} (hence HNF, hence not
+updatable), rather than a zero-arity CAF (hence updatable). If it is
+updated, then we have a mega-space leak, because the entire action
+(@requestToIO main@) is retained indefinitely.
+
+(This doesn't waste work because @mainIO@ is only used once.)
diff --git a/ghc/lib/glaExts/MainIO13.hi b/ghc/lib/glaExts/MainIO13.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13.lhs b/ghc/lib/glaExts/MainIO13.lhs
new file mode 100644
index 0000000000..a650d095ef
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13.lhs
@@ -0,0 +1,40 @@
+This is the mainPrimIO13 that must be used for Haskell~1.3.
+
+\begin{code}
+module Main ( mainPrimIO13 ) where
+
+import PreludeMain13_help -- for type of "Main.main"
+import Builtin ( error )
+import PreludeIO
+import UTypes ( Bin )
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++) )
+import Prel ( (.), not )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+mainPrimIO13 :: PrimIO ()
+
+mainPrimIO13 s
+ = case (main s) of { (result, s2@(S# _)) ->
+ case result of
+ Right () -> ( (), s2 )
+ Left err -> error ("I/O error: "++shows err "\n")
+ }
+\end{code}
+
+OLD COMMENT:
+
+Nota Bene! @mainIO@ is written as an explicit function, rather than
+by saying: @mainIO = requestToIO main@ so that the code generator
+recognises @mainIO@ as a {\em function} (hence HNF, hence not
+updatable), rather than a zero-arity CAF (hence updatable). If it is
+updated, then we have a mega-space leak, because the entire action
+(@requestToIO main@) is retained indefinitely.
+
+(This doesn't waste work because @mainIO@ is only used once.)
diff --git a/ghc/lib/glaExts/MainIO13_mc.hi b/ghc/lib/glaExts/MainIO13_mc.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_mc.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13_mg.hi b/ghc/lib/glaExts/MainIO13_mg.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_mg.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13_mp.hi b/ghc/lib/glaExts/MainIO13_mp.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_mp.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13_mr.hi b/ghc/lib/glaExts/MainIO13_mr.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_mr.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13_mt.hi b/ghc/lib/glaExts/MainIO13_mt.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_mt.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13_p.hi b/ghc/lib/glaExts/MainIO13_p.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_p.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/MainIO13_t.hi b/ghc/lib/glaExts/MainIO13_t.hi
new file mode 100644
index 0000000000..6784a16d05
--- /dev/null
+++ b/ghc/lib/glaExts/MainIO13_t.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Main where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+mainPrimIO13 :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO.hi b/ghc/lib/glaExts/PreludeDialogueIO.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO.lhs b/ghc/lib/glaExts/PreludeDialogueIO.lhs
new file mode 100644
index 0000000000..08de2179b4
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO.lhs
@@ -0,0 +1,346 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1993-1994
+%
+\section{The @Dialogue@ interface}
+
+\begin{code}
+module PreludeDialogueIO (
+ requestToPrimIO, -- RTS uses this!
+
+ processIORequest, -- used in PreludeGlaIO
+ appendChan#, -- used elsewhere in prelude
+ unpackArgv, -- ditto
+ unpackProgName -- ditto
+ ) where
+
+import PreludeGlaST -- for _ST stuff
+import PreludeGlaMisc -- for stable pointers
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import IO ( stdout, stdin )
+import List ( (++), reverse, foldr, foldl )
+import PS -- packed strings
+import Prel ( chr, flip )
+import Stdio ( fopen, fclose, fflush, _FILE )
+import Text
+import TyArray ( Array(..) )
+import TyIO
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[requestToIO]{Dialogue-to-IO}
+%* *
+%************************************************************************
+
+We would like to take existing Haskell programs, written with @main@
+of type @Dialogue@, and run them on our system. To do this, our
+system actually evaluates @mainPrimIO@ (rather than @main@ directly).
+@main@ has type @Dialogue@ then @mainPrimIO@ [separate module] is defined
+like this:
+\begin{verbatim}
+mainPrimIO :: PrimIO ()
+mainPrimIO s = case (requestToPrimIO main s) of
+ ( (), s2) -> ( (), s2 )
+\end{verbatim}
+
+So, here's @requestToPrimIO@:
+\begin{code}
+requestToPrimIO :: Dialogue -> PrimIO ()
+
+requestToPrimIO dialogue
+ = newVar (error "HELP! (Forgot to link with -fhaskell-1.3?)\n")
+ `thenPrimIO` \ rsV ->
+ unsafeInterleavePrimIO (readVar rsV) `thenPrimIO` \ rs ->
+ run (dialogue rs) rsV
+
+run :: [Request] -> MutableVar _RealWorld [Response] -> PrimIO ()
+
+run [] v = returnPrimIO ()
+run (req:reqs) v
+ = processIORequest req `thenPrimIO` \ r ->
+ newVar (error "GlasgowIO:run:synch") `thenPrimIO` \ rsV ->
+ unsafeInterleavePrimIO (readVar rsV) `thenPrimIO` \ rs ->
+ writeVar v (r:rs) `seqPrimIO`
+ run reqs rsV
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[processIORequest]{@processIORequest@}
+%* *
+%************************************************************************
+
+The guy that really does the business is @processIORequest@. We make
+this available to the intrepid user.
+
+\begin{code}
+processIORequest :: Request -> PrimIO Response
+
+processIORequest (ReadFile name)
+ = fopen name "r" `thenPrimIO` \ file_star ->
+ if (file_star == ``NULL'')
+ then returnPrimIO (Failure (ReadError ("ReadFile: can't read: "++name)))
+ -- ToDo: return SearchErrors when appropriate
+
+ else readFile# file_star `thenPrimIO` \ str ->
+ returnPrimIO (Str str)
+
+processIORequest (WriteFile name string)
+ = fopen name "w" `thenPrimIO` \ file_star ->
+ if (file_star == ``NULL'')
+ then returnPrimIO (Failure (WriteError ("WriteFile: open failed: "++name)))
+
+ else writeFile# file_star string `seqPrimIO`
+ fclose file_star `thenPrimIO` \ status ->
+ returnPrimIO (
+ if status == 0
+ then Success
+ else Failure (WriteError ("WriteFile: closed failed: "++name))
+ )
+
+processIORequest (AppendFile name string)
+ = fopen name "a+"{-don't create-} `thenPrimIO` \ file_star ->
+ if (file_star == ``NULL'')
+ then returnPrimIO (Failure (WriteError ("AppendFile: open failed: "++name)))
+
+ else writeFile# file_star string `seqPrimIO`
+ fclose file_star `thenPrimIO` \ status ->
+ returnPrimIO (
+ if status == 0
+ then Success
+ else Failure (WriteError ("AppendFile: closed failed: "++name))
+ )
+
+processIORequest (DeleteFile name)
+ = _casm_ ``%r = (I_) unlink((char *) %0);'' name `thenPrimIO` \ status ->
+ returnPrimIO (
+ if (status == (0::Int)) then
+ Success
+ else if ( (``errno''::Int) == (``ENOENT''::Int) ) then
+ Failure (SearchError ("DeleteFile: no such file: "++name))
+ else
+ Failure (WriteError ("DeleteFile: could not delete: "++name))
+ )
+
+processIORequest (AppendChan chan str)
+ = case chan of
+ "stdout" ->
+ appendChan# ``stdout'' str `seqPrimIO`
+ fflush ``stdout'' `thenPrimIO` \ status ->
+ returnPrimIO (
+ if status == 0
+ then Success
+ else Failure (WriteError ("AppendChan: flush failed: " ++ chan))
+ )
+ "stderr" ->
+ appendChan# ``stderr'' str `seqPrimIO`
+ fflush ``stderr'' `thenPrimIO` \ status ->
+ returnPrimIO (
+ if status == 0
+ then Success
+ else Failure (WriteError ("AppendChan: flush failed: " ++ chan))
+ )
+ _ -> error "AppendChan: not implemented except for \"stdout\" and \"stderr\"\n"
+
+processIORequest (ReadChan chan)
+ = case chan of
+ "stdin" -> readChan# ``stdin'' `thenPrimIO` \ str ->
+ returnPrimIO (Str str)
+
+ _ -> error "ReadChan: not implemented except for \"stdin\"\n"
+
+processIORequest (Echo False) = returnPrimIO Success
+processIORequest (Echo True)
+ = {- REMOVED: Can't be bothered. WDP: 95/04
+ appendChan# ``stderr'' "Glasgow Haskell doesn't support \"Echo\" requests properly (yet)\n"
+ `seqPrimIO` -} returnPrimIO Success
+
+processIORequest GetArgs
+ = returnPrimIO (StrList (unpackArgv ``prog_argv'' (``prog_argc''::Int) ))
+
+processIORequest GetProgName
+ = returnPrimIO (Str (unpackProgName ``prog_argv''))
+
+processIORequest (GetEnv name)
+ = _casm_ ``%r = getenv((char *) %0);'' name `thenPrimIO` \ litstring ->
+ returnPrimIO (
+ if (eqAddr litstring ``NULL'') then
+ Failure (SearchError ("GetEnv:"++name))
+ else
+ Str (_unpackPS (_packCString litstring)) -- cheaper than it looks
+ )
+ where
+ eqAddr (A# a1) (A# a2) = eqAddr# a1 a2
+
+#ifndef __PARALLEL_HASKELL__
+
+processIORequest (SigAction n act)
+ = (case act of
+ SAIgnore -> _ccall_ stg_sig_ignore n (``NULL''::_Addr)
+ SADefault -> _ccall_ stg_sig_default n (``NULL''::_Addr)
+ SACatch dialogue ->
+ let handler :: PrimIO ()
+ handler s = case (requestToPrimIO dialogue s) of
+ ( (), s2@(S# _) ) -> ( (), s2 )
+ in
+ makeStablePtr handler `thenPrimIO` \ sptr ->
+ _ccall_ stg_sig_catch n sptr (``NULL''::_Addr))
+ `thenPrimIO` \ osptr ->
+ returnPrimIO (
+ if osptr >= 0 then Success
+ else Failure (OtherError ("SigAction:" ++ show n)))
+
+#endif {-!parallel-}
+
+processIORequest _
+ = error "DialogueToIO.processIORequest: unimplemented I/O request (please report)\n"
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[DialogueIO]{Access to all @Dialogues@ in the IO world}
+%* *
+%************************************************************************
+
+This is Andy Gill's stuff to make all of @Dialogue@-style IO readily
+available in the monadic IO world.
+
+%************************************************************************
+%* *
+\subsection{Support bits for all of this}
+%* *
+%************************************************************************
+
+\begin{code}
+-- like unpackCString ...
+
+type CHAR_STAR_STAR = _Addr -- this is all a HACK
+type CHAR_STAR = _Addr
+
+unpackArgv :: CHAR_STAR_STAR -> Int -> [String] -- argv[1 .. argc-1]
+unpackProgName :: CHAR_STAR_STAR -> String -- argv[0]
+
+unpackArgv argv argc = unpack 1
+ where
+ unpack :: Int -> [String]
+ unpack n
+ = if (n >= argc)
+ then ([] :: [String])
+ else case (indexAddrOffAddr argv n) of { item ->
+ _unpackPS (_packCString item) : unpack (n + 1)
+ }
+
+unpackProgName argv
+ = case (indexAddrOffAddr argv 0) of { prog ->
+ de_slash [] (_unpackPS (_packCString prog)) }
+ where
+ -- re-start accumulating at every '/'
+ de_slash :: String -> String -> String
+ de_slash acc [] = reverse acc
+ de_slash acc ('/':xs) = de_slash [] xs
+ de_slash acc (x:xs) = de_slash (x:acc) xs
+\end{code}
+
+Read and append a string from/on a given @FILE *@ stream. @appendChan#@
+and @readChan#@ are well-behaved lazy functions; @writeFile#@ and
+@readFile#@ (which ``know'' they are writing/reading disk files) are
+much stricter.
+
+\begin{code}
+appendChan#, writeFile# :: _FILE -> String -> PrimIO Bool
+
+appendChan# stream [] = returnPrimIO True
+
+appendChan# stream (c : cs)
+ = _ccall_ stg_putc c stream `seqPrimIO` -- stg_putc expands to putc
+ appendChan# stream cs -- (just does some casting stream)
+
+-----------
+writeFile# stream [] = returnPrimIO True
+
+writeFile# stream (c1@(C# _) : c2@(C# _) : c3@(C# _) : c4@(C# _)
+ : c5@(C# _) : c6@(C# _) : c7@(C# _) : c8@(C# _)
+ : c9@(C# _) : c10@(C# _): c11@(C# _): c12@(C# _)
+ : c13@(C# _): c14@(C# _): c15@(C# _): c16@(C# _): cs)
+ = _ccall_ stg_putc c1 stream `seqPrimIO`
+ _ccall_ stg_putc c2 stream `seqPrimIO`
+ _ccall_ stg_putc c3 stream `seqPrimIO`
+ _ccall_ stg_putc c4 stream `seqPrimIO`
+ _ccall_ stg_putc c5 stream `seqPrimIO`
+ _ccall_ stg_putc c6 stream `seqPrimIO`
+ _ccall_ stg_putc c7 stream `seqPrimIO`
+ _ccall_ stg_putc c8 stream `seqPrimIO`
+ _ccall_ stg_putc c9 stream `seqPrimIO`
+ _ccall_ stg_putc c10 stream `seqPrimIO`
+ _ccall_ stg_putc c11 stream `seqPrimIO`
+ _ccall_ stg_putc c12 stream `seqPrimIO`
+ _ccall_ stg_putc c13 stream `seqPrimIO`
+ _ccall_ stg_putc c14 stream `seqPrimIO`
+ _ccall_ stg_putc c15 stream `seqPrimIO`
+ _ccall_ stg_putc c16 stream `seqPrimIO`
+ writeFile# stream cs
+
+writeFile# stream (c : cs)
+ = _ccall_ stg_putc c stream `seqPrimIO`
+ writeFile# stream cs
+\end{code}
+
+@readChan#@ lazily reads the rest of some stream. Dodgy because two
+uses of.
+
+ToDo: return fclose status.
+
+\begin{code}
+readChan#, readFile# :: _FILE -> PrimIO String
+
+readChan# stream
+ = let
+ read_rest
+ = _ccall_ stg_getc{-macro-} stream `thenPrimIO` \ ch ->
+
+ if ch < 0 then -- SIGH: ch ==# ``EOF'' then
+ returnPrimIO []
+ else
+ unsafeInterleavePrimIO read_rest `thenPrimIO` \ rest ->
+ returnPrimIO (chr ch : rest)
+ in
+ unsafeInterleavePrimIO read_rest `thenPrimIO` \ contents ->
+ returnPrimIO contents
+
+------------------
+readFile# stream
+ = let
+ read_rest
+ = newCharArray (0::Int, 1023){-malloc!?-} `thenStrictlyST` \ arr# ->
+ -- ToDo: lift newCharArray out of the loop!
+
+ _ccall_ fread arr# (1::Int) (1024::Int) stream `thenPrimIO` \ num_read ->
+
+ cvt arr# 0 (num_read - 1) `thenPrimIO` \ chars ->
+
+ if num_read < 1024 then
+ fclose stream `seqPrimIO`
+ returnPrimIO chars
+ else
+ unsafeInterleavePrimIO read_rest `thenPrimIO` \ rest ->
+ returnPrimIO (chars ++ rest)
+ in
+ unsafeInterleavePrimIO read_rest `thenPrimIO` \ contents ->
+ returnPrimIO contents
+ where
+ cvt :: _MutableByteArray _RealWorld Int
+ -> Int -> Int
+ -> PrimIO [Char]
+
+ cvt arr# idx last
+ = if idx > last then
+ returnPrimIO []
+ else
+ readCharArray arr# idx `thenPrimIO` \ ch ->
+ cvt arr# (idx + 1) last `thenPrimIO` \ rest ->
+ returnPrimIO (ch : rest)
+\end{code}
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_mc.hi b/ghc/lib/glaExts/PreludeDialogueIO_mc.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_mc.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_mg.hi b/ghc/lib/glaExts/PreludeDialogueIO_mg.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_mg.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_mp.hi b/ghc/lib/glaExts/PreludeDialogueIO_mp.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_mp.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_mr.hi b/ghc/lib/glaExts/PreludeDialogueIO_mr.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_mr.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_mt.hi b/ghc/lib/glaExts/PreludeDialogueIO_mt.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_mt.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_p.hi b/ghc/lib/glaExts/PreludeDialogueIO_p.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_p.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeDialogueIO_t.hi b/ghc/lib/glaExts/PreludeDialogueIO_t.hi
new file mode 100644
index 0000000000..4061d81a1f
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeDialogueIO_t.hi
@@ -0,0 +1,17 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeDialogueIO where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIO(Request, Response)
+import Stdio(_FILE)
+appendChan# :: _FILE -> [Char] -> _State _RealWorld -> (Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+processIORequest :: Request -> _State _RealWorld -> (Response, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+requestToPrimIO :: ([Response] -> [Request]) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackArgv :: _Addr -> Int -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unpackProgName :: _Addr -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO.hi b/ghc/lib/glaExts/PreludeErrIO.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO.lhs b/ghc/lib/glaExts/PreludeErrIO.lhs
new file mode 100644
index 0000000000..0057b59292
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO.lhs
@@ -0,0 +1,18 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1993
+%
+\section[PreludeErrIO]{Wrapper for errorIO primitive}
+
+The boxified version of the @errorIO#@ primitive.
+
+\begin{code}
+module PreludeErrIO where
+
+errorIO :: PrimIO () -> a
+
+errorIO io
+ = case (errorIO# io) of
+ _ -> bottom
+ where
+ bottom = bottom -- Never evaluated
+\end{code}
diff --git a/ghc/lib/glaExts/PreludeErrIO_mc.hi b/ghc/lib/glaExts/PreludeErrIO_mc.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_mc.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO_mg.hi b/ghc/lib/glaExts/PreludeErrIO_mg.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_mg.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO_mp.hi b/ghc/lib/glaExts/PreludeErrIO_mp.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_mp.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO_mr.hi b/ghc/lib/glaExts/PreludeErrIO_mr.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_mr.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO_mt.hi b/ghc/lib/glaExts/PreludeErrIO_mt.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_mt.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO_p.hi b/ghc/lib/glaExts/PreludeErrIO_p.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_p.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeErrIO_t.hi b/ghc/lib/glaExts/PreludeErrIO_t.hi
new file mode 100644
index 0000000000..352a49beff
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeErrIO_t.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeErrIO where
+import PreludeBuiltin(Tuple0, Tuple2, _RealWorld(..), _State(..))
+errorIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 4 _/\_ u0 -> \ (u1 :: _State _RealWorld -> ((), _State _RealWorld)) -> _LETREC_ {(u2 :: _forall_ a$z1 =>a$z1) = u2} in case _#_ errorIO# [] [u1] of { _PRIM_ (u3 :: State# _RealWorld) -> _TYAPP_ u2 { u0 } } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc.hi b/ghc/lib/glaExts/PreludeGlaMisc.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc.lhs b/ghc/lib/glaExts/PreludeGlaMisc.lhs
new file mode 100644
index 0000000000..b1f38db372
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc.lhs
@@ -0,0 +1,115 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1993-1994
+%
+\section[PreludeGlaMisc]{Miscellaneous Glasgow Stuff}
+
+\begin{code}
+module PreludeGlaMisc( PreludeGlaMisc.. {-, PreludePS..-} ) where
+
+import Cls
+import Core
+import IInt
+import List ( (++) )
+import PreludeGlaST
+import PS ( _PackedString, _unpackPS )
+import TyArray ( Array(..) )
+import Text
+\end{code}
+
+Note: the above used to say:
+
+\begin{pseudocode}
+module PreludeGlaMisc(
+ _MallocPtr,
+
+#ifndef __PARALLEL_HASKELL__
+ _StablePtr,
+ makeStablePtr, deRefStablePtr, freeStablePtr,
+
+ performGC
+#endif /* !__PARALLEL_HASKELL__ */
+
+ ) where
+\end{pseudocode}
+
+But then the names @_MallocPtr@ and @_StablePtr@ get shoved out into
+the interface file and anyone importing it becomes unhappy about
+seeing a preludish name.
+
+They report:
+
+@
+Bad name on a datatype constructor (a Prelude name?): _MallocPtr
+@
+
+(This is horrid!)
+
+(Oh, btw, don't try not exporting them either - that just makes the
+info-tables, etc local to this module so that no-one can get at them.)
+
+
+
+
+
+The next two definitions must match those in
+@compiler/prelude/TysWiredIn.lhs@ exactly.
+
+\begin{code}
+#ifndef __PARALLEL_HASKELL__
+
+-- ** MOVED TO prelude/TysBasic.hs **
+-- data _MallocPtr = _MallocPtr MallocPtr#
+-- data _StablePtr a = _StablePtr (StablePtr# a)
+
+\end{code}
+
+Nota Bene: it is important {\em not\/} to inline calls to
+@makeStablePtr#@ since the corresponding macro is very long and we'll
+get terrible code-bloat.
+
+\begin{code}
+makeStablePtr :: a -> PrimIO (_StablePtr a)
+deRefStablePtr :: _StablePtr a -> PrimIO a
+freeStablePtr :: _StablePtr a -> PrimIO ()
+
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+
+performGC :: PrimIO ()
+
+{-# INLINE deRefStablePtr #-}
+{-# INLINE freeStablePtr #-}
+{-# INLINE performGC #-}
+
+makeStablePtr f (S# rw1#) =
+ case makeStablePtr# f rw1# of
+ StateAndStablePtr# rw2# sp# -> (_StablePtr sp#, S# rw2#)
+
+deRefStablePtr (_StablePtr sp#) (S# rw1#) =
+ case deRefStablePtr# sp# rw1# of
+ StateAndPtr# rw2# a -> (a, S# rw2#)
+
+freeStablePtr sp = _ccall_ freeStablePointer sp
+
+eqMallocPtr mp1 mp2 = unsafePerformPrimIO (
+ _ccall_ eqMallocPtr mp1 mp2
+ )
+ /= (0::Int)
+
+instance Eq _MallocPtr where
+ p == q = eqMallocPtr p q
+ p /= q = if eqMallocPtr p q then False else True
+
+performGC = _ccall_GC_ StgPerformGarbageCollection
+
+#endif /* !__PARALLEL_HASKELL__ */
+\end{code}
+
+Like they say: this is as good a place as any to put it:
+
+\begin{code}
+addr2Int :: _Addr -> Int
+addr2Int (A# a#) = I# (addr2Int# a#)
+
+int2Addr :: Int -> _Addr
+int2Addr (I# i#) = A# (int2Addr# i#)
+\end{code}
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_mc.hi b/ghc/lib/glaExts/PreludeGlaMisc_mc.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_mc.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_mg.hi b/ghc/lib/glaExts/PreludeGlaMisc_mg.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_mg.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_mp.hi b/ghc/lib/glaExts/PreludeGlaMisc_mp.hi
new file mode 100644
index 0000000000..2be1fefe39
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_mp.hi
@@ -0,0 +1,8 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), _Addr(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_mr.hi b/ghc/lib/glaExts/PreludeGlaMisc_mr.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_mr.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_mt.hi b/ghc/lib/glaExts/PreludeGlaMisc_mt.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_mt.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_p.hi b/ghc/lib/glaExts/PreludeGlaMisc_p.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_p.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaMisc_t.hi b/ghc/lib/glaExts/PreludeGlaMisc_t.hi
new file mode 100644
index 0000000000..08b0469788
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaMisc_t.hi
@@ -0,0 +1,23 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaMisc where
+import PreludeBuiltin(Int(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..))
+addr2Int :: _Addr -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Addr#) -> case _#_ addr2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: _Addr) -> case u0 of { _ALG_ A# (u1 :: Addr#) -> case _#_ addr2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+deRefStablePtr :: _StablePtr a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u1 of { _ALG_ _StablePtr (u3 :: StablePtr# u0) -> case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> case _#_ deRefStablePtr# [u0] [u3, u4] of { _ALG_ StateAndPtr# (u5 :: State# _RealWorld) (u6 :: u0) -> let {(u7 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [u0, (_State _RealWorld)] [u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+eqMallocPtr :: _MallocPtr -> _MallocPtr -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeStablePtr :: _StablePtr a -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: _StablePtr u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> case u1 of { _ALG_ _StablePtr (u4 :: StablePtr# u0) -> case _#_ (_ccall_ freeStablePointer { [(State# _RealWorld), (StablePtr# u0)] (_State _RealWorld) }) [] [u3, u4] of { _ALG_ S# (u5 :: State# _RealWorld) -> let {(u6 :: _State _RealWorld) = _!_ S# [_RealWorld] [u5]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+int2Addr :: Int -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Addr# [] [u0] of { _PRIM_ (u1 :: Addr#) -> _!_ A# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Addr# [] [u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+makeStablePtr :: a -> _State _RealWorld -> (_StablePtr a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+performGC :: _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: _State _RealWorld) -> case u0 of { _ALG_ S# (u1 :: State# _RealWorld) -> case _#_ (_ccall_GC_ StgPerformGarbageCollection { [(State# _RealWorld)] (_State _RealWorld) }) [] [u1] of { _ALG_ S# (u2 :: State# _RealWorld) -> let {(u3 :: _State _RealWorld) = _!_ S# [_RealWorld] [u2]} in _!_ _TUP_2 [(), (_State _RealWorld)] [_TUP_0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeGlaMisc {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_MallocPtr -> _MallocPtr -> Bool), (_MallocPtr -> _MallocPtr -> Bool)] [_ORIG_ PreludeGlaMisc eqMallocPtr, _CONSTM_ Eq (/=) (_MallocPtr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeGlaMisc eqMallocPtr _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST.hi b/ghc/lib/glaExts/PreludeGlaST.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST.lhs b/ghc/lib/glaExts/PreludeGlaST.lhs
new file mode 100644
index 0000000000..a4db1d2f24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST.lhs
@@ -0,0 +1,712 @@
+%
+% (c) The AQUA Project, Glasgow University, 1994
+%
+\section[PreludeGlaST]{Basic ``state transformer'' monad, mutable arrays and variables}
+
+See state-interface.verb, from which this is taken directly.
+
+\begin{code}
+#include "../../includes/platform.h"
+#include "../../includes/GhcConstants.h"
+
+module PreludeGlaST (
+ PreludeGlaST.. ,
+ _MutableArray(..),
+ _MutableByteArray(..),
+ ST(..), -- it's a known GHC infelicity that synonyms must
+ MutableVar(..), -- be listed separately.
+
+ --!! because this interface is now the "everything state-transformer"ish
+ --!! interface, here is all the PreludePrimIO stuff
+
+ -- PrimIO(..): no, the compiler already knows about it
+
+ fixPrimIO,
+ listPrimIO,
+ mapAndUnzipPrimIO,
+ mapPrimIO,
+ returnPrimIO,
+ seqPrimIO,
+ thenPrimIO,
+ unsafePerformPrimIO,
+ unsafeInterleavePrimIO,
+ forkPrimIO,
+
+ -- all the Stdio stuff (this is how you get to it)
+ -- (well, why not?)
+ fclose, fdopen, fflush, fopen, fread, freopen,
+ fwrite, _FILE(..),
+
+ -- backward compatibility -- don't use!
+ readChanPrimIO,
+ appendChanPrimIO,
+ appendFilePrimIO,
+ getArgsPrimIO,
+
+ --!! end of PreludePrimIO
+
+ _ByteArray(..), Array(..) -- reexport *unabstractly*
+ ) where
+
+import PreludePrimIO (
+ fixPrimIO,
+ listPrimIO,
+ mapAndUnzipPrimIO,
+ mapPrimIO,
+ returnPrimIO,
+ seqPrimIO,
+ thenPrimIO,
+ unsafePerformPrimIO,
+ unsafeInterleavePrimIO,
+-- forkPrimIO,
+ readChanPrimIO,
+ appendChanPrimIO,
+ appendFilePrimIO,
+ getArgsPrimIO
+ )
+import Stdio
+
+import Cls
+import Core
+import IInt
+import ITup2
+import List ( map, null, foldr, (++) )
+import PS ( _PackedString, _unpackPS )
+import TyArray ( Array(..), _ByteArray(..) )
+import Text
+
+infixr 9 `thenST`, `thenStrictlyST`, `seqST`, `seqStrictlyST`
+
+type IPr = (Int, Int)
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[PreludeGlaST-ST-monad]{The state-transformer proper}
+%* *
+%************************************************************************
+
+\begin{code}
+--BUILT-IN: type _ST s a -- State transformer
+
+type ST s a = _ST s a -- so you don't need -fglasgow-exts
+
+{-# INLINE returnST #-}
+{-# INLINE returnStrictlyST #-}
+{-# INLINE thenStrictlyST #-}
+{-# INLINE seqStrictlyST #-}
+
+returnST, returnStrictlyST :: a -> _ST s a
+returnST a s = (a, s)
+
+thenST, thenStrictlyST :: _ST s a -> (a -> _ST s b) -> _ST s b
+thenST m k s = let (r,new_s) = m s
+ in
+ k r new_s
+
+fixST :: (a -> _ST s a) -> _ST s a
+fixST k s = let ans = k r s
+ (r,new_s) = ans
+ in
+ ans
+
+-- BUILT-IN: _runST (see Builtin.hs)
+
+unsafeInterleaveST :: _ST s a -> _ST s a -- ToDo: put in state-interface.tex
+
+unsafeInterleaveST m s
+ = let
+ (r, new_s) = m s
+ in
+ (r, s)
+
+seqST, seqStrictlyST :: _ST s a -> _ST s b -> _ST s b
+seqST m1 m2 = m1 `thenST` (\ _ -> m2)
+
+returnStrictlyST a s@(S# _) = (a, s)
+
+thenStrictlyST m k s -- @(S# _) Omitted SLPJ [May95] no need to evaluate the state
+ = case (m s) of { (r, new_s) ->
+ k r new_s }
+
+seqStrictlyST m k s -- @(S# _) Omitted SLPJ [May95] no need to evaluate the state
+ = case (m s) of { (_, new_s) ->
+ k new_s }
+
+listST :: [_ST s a] -> _ST s [a]
+
+listST [] = returnST []
+listST (m:ms) = m `thenST` \ x ->
+ listST ms `thenST` \ xs ->
+ returnST (x:xs)
+
+mapST :: (a -> _ST s b) -> [a] -> _ST s [b]
+mapST f ms = listST (map f ms)
+
+mapAndUnzipST :: (a -> _ST s (b,c)) -> [a] -> _ST s ([b],[c])
+mapAndUnzipST f [] = returnST ([], [])
+mapAndUnzipST f (m:ms)
+ = f m `thenST` \ ( r1, r2) ->
+ mapAndUnzipST f ms `thenST` \ (rs1, rs2) ->
+ returnST (r1:rs1, r2:rs2)
+
+-- not exported
+forkST :: ST s () -> ST s ()
+
+#ifndef __CONCURRENT_HASKELL__
+forkST x = x
+#else
+
+forkST action s
+ = let
+ (_, new_s) = action s
+ in
+ new_s `_fork_` ((), s)
+ where
+ _fork_ x y = case (fork# x) of { 0# -> parError#; _ -> y }
+
+#endif {- __CONCURRENT_HASKELL__ -}
+
+forkPrimIO :: PrimIO () -> PrimIO ()
+forkPrimIO = forkST
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[PreludeGlaST-arrays]{Mutable arrays}
+%* *
+%************************************************************************
+
+Idle ADR question: What's the tradeoff here between flattening these
+datatypes into @_MutableArray ix ix (MutableArray# s elt)@ and using
+it as is? As I see it, the former uses slightly less heap and
+provides faster access to the individual parts of the bounds while the
+code used has the benefit of providing a ready-made @(lo, hi)@ pair as
+required by many array-related functions. Which wins? Is the
+difference significant (probably not).
+
+Idle AJG answer: When I looked at the outputted code (though it was 2
+years ago) it seems like you often needed the tuple, and we build
+it frequently. Now we've got the overloading specialiser things
+might be different, though.
+
+\begin{code}
+data _MutableArray s ix elt = _MutableArray (ix,ix) (MutableArray# s elt)
+data _MutableByteArray s ix = _MutableByteArray (ix,ix) (MutableByteArray# s)
+
+instance _CCallable (_MutableByteArray s ix)
+\end{code}
+
+\begin{code}
+newArray :: Ix ix => (ix,ix) -> elt -> _ST s (_MutableArray s ix elt)
+newCharArray, newIntArray, newAddrArray, newFloatArray, newDoubleArray
+ :: Ix ix => (ix,ix) -> _ST s (_MutableByteArray s ix)
+
+{-# SPECIALIZE newArray :: IPr -> elt -> _ST s (_MutableArray s Int elt),
+ (IPr,IPr) -> elt -> _ST s (_MutableArray s IPr elt)
+ #-}
+{-# SPECIALIZE newCharArray :: IPr -> _ST s (_MutableByteArray s Int) #-}
+{-# SPECIALIZE newIntArray :: IPr -> _ST s (_MutableByteArray s Int) #-}
+{-# SPECIALIZE newAddrArray :: IPr -> _ST s (_MutableByteArray s Int) #-}
+--NO:{-# SPECIALIZE newFloatArray :: IPr -> _ST s (_MutableByteArray s Int) #-}
+{-# SPECIALIZE newDoubleArray :: IPr -> _ST s (_MutableByteArray s Int) #-}
+
+newArray ixs@(ix_start, ix_end) init (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else (index ixs ix_end) + 1) of { I# x -> x }
+ -- size is one bigger than index of last elem
+ in
+ case (newArray# n# init s#) of { StateAndMutableArray# s2# arr# ->
+ (_MutableArray ixs arr#, S# s2#)}
+
+newCharArray ixs@(ix_start, ix_end) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case (newCharArray# n# s#) of { StateAndMutableByteArray# s2# barr# ->
+ (_MutableByteArray ixs barr#, S# s2#)}
+
+newIntArray ixs@(ix_start, ix_end) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case (newIntArray# n# s#) of { StateAndMutableByteArray# s2# barr# ->
+ (_MutableByteArray ixs barr#, S# s2#)}
+
+newAddrArray ixs@(ix_start, ix_end) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case (newAddrArray# n# s#) of { StateAndMutableByteArray# s2# barr# ->
+ (_MutableByteArray ixs barr#, S# s2#)}
+
+newFloatArray ixs@(ix_start, ix_end) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case (newFloatArray# n# s#) of { StateAndMutableByteArray# s2# barr# ->
+ (_MutableByteArray ixs barr#, S# s2#)}
+
+newDoubleArray ixs@(ix_start, ix_end) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+-- trace ("newDoubleArray:"++(show (I# n#))) (
+ case (newDoubleArray# n# s#) of { StateAndMutableByteArray# s2# barr# ->
+ (_MutableByteArray ixs barr#, S# s2#)}
+-- )
+\end{code}
+
+\begin{code}
+boundsOfArray :: Ix ix => _MutableArray s ix elt -> (ix, ix)
+boundsOfByteArray :: Ix ix => _MutableByteArray s ix -> (ix, ix)
+
+{-# SPECIALIZE boundsOfArray :: _MutableArray s Int elt -> IPr #-}
+{-# SPECIALIZE boundsOfByteArray :: _MutableByteArray s Int -> IPr #-}
+
+boundsOfArray (_MutableArray ixs _) = ixs
+boundsOfByteArray (_MutableByteArray ixs _) = ixs
+\end{code}
+
+\begin{code}
+readArray :: Ix ix => _MutableArray s ix elt -> ix -> _ST s elt
+
+readCharArray :: Ix ix => _MutableByteArray s ix -> ix -> _ST s Char
+readIntArray :: Ix ix => _MutableByteArray s ix -> ix -> _ST s Int
+readAddrArray :: Ix ix => _MutableByteArray s ix -> ix -> _ST s _Addr
+--NO:readFloatArray :: Ix ix => _MutableByteArray s ix -> ix -> _ST s Float
+readDoubleArray :: Ix ix => _MutableByteArray s ix -> ix -> _ST s Double
+
+{-# SPECIALIZE readArray :: _MutableArray s Int elt -> Int -> _ST s elt,
+ _MutableArray s IPr elt -> IPr -> _ST s elt
+ #-}
+{-# SPECIALIZE readCharArray :: _MutableByteArray s Int -> Int -> _ST s Char #-}
+{-# SPECIALIZE readIntArray :: _MutableByteArray s Int -> Int -> _ST s Int #-}
+{-# SPECIALIZE readAddrArray :: _MutableByteArray s Int -> Int -> _ST s _Addr #-}
+--NO:{-# SPECIALIZE readFloatArray :: _MutableByteArray s Int -> Int -> _ST s Float #-}
+{-# SPECIALIZE readDoubleArray :: _MutableByteArray s Int -> Int -> _ST s Double #-}
+
+readArray (_MutableArray ixs arr#) n (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case readArray# arr# n# s# of { StateAndPtr# s2# r ->
+ (r, S# s2#)}}
+
+readCharArray (_MutableByteArray ixs barr#) n (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case readCharArray# barr# n# s# of { StateAndChar# s2# r# ->
+ (C# r#, S# s2#)}}
+
+readIntArray (_MutableByteArray ixs barr#) n (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case readIntArray# barr# n# s# of { StateAndInt# s2# r# ->
+ (I# r#, S# s2#)}}
+
+readAddrArray (_MutableByteArray ixs barr#) n (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case readAddrArray# barr# n# s# of { StateAndAddr# s2# r# ->
+ (A# r#, S# s2#)}}
+
+readFloatArray (_MutableByteArray ixs barr#) n (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case readFloatArray# barr# n# s# of { StateAndFloat# s2# r# ->
+ (F# r#, S# s2#)}}
+
+readDoubleArray (_MutableByteArray ixs barr#) n (S# s#)
+ = case (index ixs n) of { I# n# ->
+-- trace ("readDoubleArray:"++(show (I# n#))) (
+ case readDoubleArray# barr# n# s# of { StateAndDouble# s2# r# ->
+ (D# r#, S# s2#)}}
+\end{code}
+
+Indexing of ordinary @Arrays@ is standard Haskell and isn't defined here.
+\begin{code}
+indexCharArray :: Ix ix => _ByteArray ix -> ix -> Char
+indexIntArray :: Ix ix => _ByteArray ix -> ix -> Int
+indexAddrArray :: Ix ix => _ByteArray ix -> ix -> _Addr
+indexFloatArray :: Ix ix => _ByteArray ix -> ix -> Float
+indexDoubleArray :: Ix ix => _ByteArray ix -> ix -> Double
+
+{-# SPECIALIZE indexCharArray :: _ByteArray Int -> Int -> Char #-}
+{-# SPECIALIZE indexIntArray :: _ByteArray Int -> Int -> Int #-}
+{-# SPECIALIZE indexAddrArray :: _ByteArray Int -> Int -> _Addr #-}
+--NO:{-# SPECIALIZE indexFloatArray :: _ByteArray Int -> Int -> Float #-}
+{-# SPECIALIZE indexDoubleArray :: _ByteArray Int -> Int -> Double #-}
+
+indexCharArray (_ByteArray ixs barr#) n
+ = case (index ixs n) of { I# n# ->
+ case indexCharArray# barr# n# of { r# ->
+ (C# r#)}}
+
+indexIntArray (_ByteArray ixs barr#) n
+ = case (index ixs n) of { I# n# ->
+ case indexIntArray# barr# n# of { r# ->
+ (I# r#)}}
+
+indexAddrArray (_ByteArray ixs barr#) n
+ = case (index ixs n) of { I# n# ->
+ case indexAddrArray# barr# n# of { r# ->
+ (A# r#)}}
+
+indexFloatArray (_ByteArray ixs barr#) n
+ = case (index ixs n) of { I# n# ->
+ case indexFloatArray# barr# n# of { r# ->
+ (F# r#)}}
+
+indexDoubleArray (_ByteArray ixs barr#) n
+ = case (index ixs n) of { I# n# ->
+-- trace ("indexDoubleArray:"++(show (I# n#))) (
+ case indexDoubleArray# barr# n# of { r# ->
+ (D# r#)}}
+\end{code}
+
+Indexing off @_Addrs@ is similar, and therefore given here.
+\begin{code}
+indexCharOffAddr :: _Addr -> Int -> Char
+indexIntOffAddr :: _Addr -> Int -> Int
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+indexFloatOffAddr :: _Addr -> Int -> Float
+indexDoubleOffAddr :: _Addr -> Int -> Double
+
+indexCharOffAddr (A# addr#) n
+ = case n of { I# n# ->
+ case indexCharOffAddr# addr# n# of { r# ->
+ (C# r#)}}
+
+indexIntOffAddr (A# addr#) n
+ = case n of { I# n# ->
+ case indexIntOffAddr# addr# n# of { r# ->
+ (I# r#)}}
+
+indexAddrOffAddr (A# addr#) n
+ = case n of { I# n# ->
+ case indexAddrOffAddr# addr# n# of { r# ->
+ (A# r#)}}
+
+indexFloatOffAddr (A# addr#) n
+ = case n of { I# n# ->
+ case indexFloatOffAddr# addr# n# of { r# ->
+ (F# r#)}}
+
+indexDoubleOffAddr (A# addr#) n
+ = case n of { I# n# ->
+ case indexDoubleOffAddr# addr# n# of { r# ->
+ (D# r#)}}
+\end{code}
+
+\begin{code}
+writeArray :: Ix ix => _MutableArray s ix elt -> ix -> elt -> _ST s ()
+writeCharArray :: Ix ix => _MutableByteArray s ix -> ix -> Char -> _ST s ()
+writeIntArray :: Ix ix => _MutableByteArray s ix -> ix -> Int -> _ST s ()
+writeAddrArray :: Ix ix => _MutableByteArray s ix -> ix -> _Addr -> _ST s ()
+writeFloatArray :: Ix ix => _MutableByteArray s ix -> ix -> Float -> _ST s ()
+writeDoubleArray :: Ix ix => _MutableByteArray s ix -> ix -> Double -> _ST s ()
+
+{-# SPECIALIZE writeArray :: _MutableArray s Int elt -> Int -> elt -> _ST s (),
+ _MutableArray s IPr elt -> IPr -> elt -> _ST s ()
+ #-}
+{-# SPECIALIZE writeCharArray :: _MutableByteArray s Int -> Int -> Char -> _ST s () #-}
+{-# SPECIALIZE writeIntArray :: _MutableByteArray s Int -> Int -> Int -> _ST s () #-}
+{-# SPECIALIZE writeAddrArray :: _MutableByteArray s Int -> Int -> _Addr -> _ST s () #-}
+--NO:{-# SPECIALIZE writeFloatArray :: _MutableByteArray s Int -> Int -> Float -> _ST s () #-}
+{-# SPECIALIZE writeDoubleArray :: _MutableByteArray s Int -> Int -> Double -> _ST s () #-}
+
+writeArray (_MutableArray ixs arr#) n ele (S# s#)
+ = case index ixs n of { I# n# ->
+ case writeArray# arr# n# ele s# of { s2# ->
+ ((), S# s2#)}}
+
+writeCharArray (_MutableByteArray ixs barr#) n (C# ele) (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case writeCharArray# barr# n# ele s# of { s2# ->
+ ((), S# s2#)}}
+
+writeIntArray (_MutableByteArray ixs barr#) n (I# ele) (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case writeIntArray# barr# n# ele s# of { s2# ->
+ ((), S# s2#)}}
+
+writeAddrArray (_MutableByteArray ixs barr#) n (A# ele) (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case writeAddrArray# barr# n# ele s# of { s2# ->
+ ((), S# s2#)}}
+
+writeFloatArray (_MutableByteArray ixs barr#) n (F# ele) (S# s#)
+ = case (index ixs n) of { I# n# ->
+ case writeFloatArray# barr# n# ele s# of { s2# ->
+ ((), S# s2#)}}
+
+writeDoubleArray (_MutableByteArray ixs barr#) n (D# ele) (S# s#)
+ = case (index ixs n) of { I# n# ->
+-- trace ("writeDoubleArray:"++(show (I# n#))) (
+ case writeDoubleArray# barr# n# ele s# of { s2# ->
+ ((), S# s2#)}}
+\end{code}
+
+\begin{code}
+freezeArray :: Ix ix => _MutableArray s ix elt -> _ST s (Array ix elt)
+freezeCharArray :: Ix ix => _MutableByteArray s ix -> _ST s (_ByteArray ix)
+freezeIntArray :: Ix ix => _MutableByteArray s ix -> _ST s (_ByteArray ix)
+freezeAddrArray :: Ix ix => _MutableByteArray s ix -> _ST s (_ByteArray ix)
+freezeFloatArray :: Ix ix => _MutableByteArray s ix -> _ST s (_ByteArray ix)
+freezeDoubleArray :: Ix ix => _MutableByteArray s ix -> _ST s (_ByteArray ix)
+
+{-# SPECIALISE freezeArray :: _MutableArray s Int elt -> _ST s (Array Int elt),
+ _MutableArray s IPr elt -> _ST s (Array IPr elt)
+ #-}
+{-# SPECIALISE freezeCharArray :: _MutableByteArray s Int -> _ST s (_ByteArray Int) #-}
+
+freezeArray (_MutableArray ixs@(ix_start, ix_end) arr#) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else (index ixs ix_end) + 1) of { I# x -> x }
+ in
+ case freeze arr# n# s# of { StateAndArray# s2# frozen# ->
+ (_Array ixs frozen#, S# s2#)}
+ where
+ freeze :: MutableArray# s ele -- the thing
+ -> Int# -- size of thing to be frozen
+ -> State# s -- the Universe and everything
+ -> StateAndArray# s ele
+
+ freeze arr# n# s#
+ = case newArray# n# init s# of { StateAndMutableArray# s2# newarr1# ->
+ case copy 0# n# arr# newarr1# s2# of { StateAndMutableArray# s3# newarr2# ->
+ unsafeFreezeArray# newarr2# s3#
+ }}
+ where
+ init = error "freezeArr: element not copied"
+
+ copy :: Int# -> Int#
+ -> MutableArray# s ele -> MutableArray# s ele
+ -> State# s
+ -> StateAndMutableArray# s ele
+
+ copy cur# end# from# to# s#
+ | cur# ==# end#
+ = StateAndMutableArray# s# to#
+ | True
+ = case readArray# from# cur# s# of { StateAndPtr# s1# ele ->
+ case writeArray# to# cur# ele s1# of { s2# ->
+ copy (cur# +# 1#) end# from# to# s2#
+ }}
+
+freezeCharArray (_MutableByteArray ixs@(ix_start, ix_end) arr#) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case freeze arr# n# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+ where
+ freeze :: MutableByteArray# s -- the thing
+ -> Int# -- size of thing to be frozen
+ -> State# s -- the Universe and everything
+ -> StateAndByteArray# s
+
+ freeze arr# n# s#
+ = case (newCharArray# n# s#) of { StateAndMutableByteArray# s2# newarr1# ->
+ case copy 0# n# arr# newarr1# s2# of { StateAndMutableByteArray# s3# newarr2# ->
+ unsafeFreezeByteArray# newarr2# s3#
+ }}
+ where
+ copy :: Int# -> Int#
+ -> MutableByteArray# s -> MutableByteArray# s
+ -> State# s
+ -> StateAndMutableByteArray# s
+
+ copy cur# end# from# to# s#
+ | cur# ==# end#
+ = StateAndMutableByteArray# s# to#
+ | True
+ = case (readCharArray# from# cur# s#) of { StateAndChar# s1# ele ->
+ case (writeCharArray# to# cur# ele s1#) of { s2# ->
+ copy (cur# +# 1#) end# from# to# s2#
+ }}
+
+freezeIntArray (_MutableByteArray ixs@(ix_start, ix_end) arr#) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case freeze arr# n# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+ where
+ freeze :: MutableByteArray# s -- the thing
+ -> Int# -- size of thing to be frozen
+ -> State# s -- the Universe and everything
+ -> StateAndByteArray# s
+
+ freeze arr# n# s#
+ = case (newIntArray# n# s#) of { StateAndMutableByteArray# s2# newarr1# ->
+ case copy 0# n# arr# newarr1# s2# of { StateAndMutableByteArray# s3# newarr2# ->
+ unsafeFreezeByteArray# newarr2# s3#
+ }}
+ where
+ copy :: Int# -> Int#
+ -> MutableByteArray# s -> MutableByteArray# s
+ -> State# s
+ -> StateAndMutableByteArray# s
+
+ copy cur# end# from# to# s#
+ | cur# ==# end#
+ = StateAndMutableByteArray# s# to#
+ | True
+ = case (readIntArray# from# cur# s#) of { StateAndInt# s1# ele ->
+ case (writeIntArray# to# cur# ele s1#) of { s2# ->
+ copy (cur# +# 1#) end# from# to# s2#
+ }}
+
+freezeAddrArray (_MutableByteArray ixs@(ix_start, ix_end) arr#) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case freeze arr# n# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+ where
+ freeze :: MutableByteArray# s -- the thing
+ -> Int# -- size of thing to be frozen
+ -> State# s -- the Universe and everything
+ -> StateAndByteArray# s
+
+ freeze arr# n# s#
+ = case (newAddrArray# n# s#) of { StateAndMutableByteArray# s2# newarr1# ->
+ case copy 0# n# arr# newarr1# s2# of { StateAndMutableByteArray# s3# newarr2# ->
+ unsafeFreezeByteArray# newarr2# s3#
+ }}
+ where
+ copy :: Int# -> Int#
+ -> MutableByteArray# s -> MutableByteArray# s
+ -> State# s
+ -> StateAndMutableByteArray# s
+
+ copy cur# end# from# to# s#
+ | cur# ==# end#
+ = StateAndMutableByteArray# s# to#
+ | True
+ = case (readAddrArray# from# cur# s#) of { StateAndAddr# s1# ele ->
+ case (writeAddrArray# to# cur# ele s1#) of { s2# ->
+ copy (cur# +# 1#) end# from# to# s2#
+ }}
+
+freezeFloatArray (_MutableByteArray ixs@(ix_start, ix_end) arr#) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case freeze arr# n# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+ where
+ freeze :: MutableByteArray# s -- the thing
+ -> Int# -- size of thing to be frozen
+ -> State# s -- the Universe and everything
+ -> StateAndByteArray# s
+
+ freeze arr# n# s#
+ = case (newFloatArray# n# s#) of { StateAndMutableByteArray# s2# newarr1# ->
+ case copy 0# n# arr# newarr1# s2# of { StateAndMutableByteArray# s3# newarr2# ->
+ unsafeFreezeByteArray# newarr2# s3#
+ }}
+ where
+ copy :: Int# -> Int#
+ -> MutableByteArray# s -> MutableByteArray# s
+ -> State# s
+ -> StateAndMutableByteArray# s
+
+ copy cur# end# from# to# s#
+ | cur# ==# end#
+ = StateAndMutableByteArray# s# to#
+ | True
+ = case (readFloatArray# from# cur# s#) of { StateAndFloat# s1# ele ->
+ case (writeFloatArray# to# cur# ele s1#) of { s2# ->
+ copy (cur# +# 1#) end# from# to# s2#
+ }}
+
+freezeDoubleArray (_MutableByteArray ixs@(ix_start, ix_end) arr#) (S# s#)
+ = let n# = case (if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)) of { I# x -> x }
+ in
+ case freeze arr# n# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+ where
+ freeze :: MutableByteArray# s -- the thing
+ -> Int# -- size of thing to be frozen
+ -> State# s -- the Universe and everything
+ -> StateAndByteArray# s
+
+ freeze arr# n# s#
+ = case (newDoubleArray# n# s#) of { StateAndMutableByteArray# s2# newarr1# ->
+ case copy 0# n# arr# newarr1# s2# of { StateAndMutableByteArray# s3# newarr2# ->
+ unsafeFreezeByteArray# newarr2# s3#
+ }}
+ where
+ copy :: Int# -> Int#
+ -> MutableByteArray# s -> MutableByteArray# s
+ -> State# s
+ -> StateAndMutableByteArray# s
+
+ copy cur# end# from# to# s#
+ | cur# ==# end#
+ = StateAndMutableByteArray# s# to#
+ | True
+ = case (readDoubleArray# from# cur# s#) of { StateAndDouble# s1# ele ->
+ case (writeDoubleArray# to# cur# ele s1#) of { s2# ->
+ copy (cur# +# 1#) end# from# to# s2#
+ }}
+\end{code}
+
+\begin{code}
+unsafeFreezeArray :: Ix ix => _MutableArray s ix elt -> _ST s (Array ix elt)
+unsafeFreezeByteArray :: Ix ix => _MutableByteArray s ix -> _ST s (_ByteArray ix)
+
+{-# SPECIALIZE unsafeFreezeByteArray :: _MutableByteArray s Int -> _ST s (_ByteArray Int)
+ #-}
+
+unsafeFreezeArray (_MutableArray ixs arr#) (S# s#)
+ = case unsafeFreezeArray# arr# s# of { StateAndArray# s2# frozen# ->
+ (_Array ixs frozen#, S# s2#) }
+
+unsafeFreezeByteArray (_MutableByteArray ixs arr#) (S# s#)
+ = case unsafeFreezeByteArray# arr# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+\end{code}
+
+\begin{code}
+sameMutableArray :: _MutableArray s ix elt -> _MutableArray s ix elt -> Bool
+sameMutableByteArray :: _MutableByteArray s ix -> _MutableByteArray s ix -> Bool
+
+sameMutableArray (_MutableArray _ arr1#) (_MutableArray _ arr2#)
+ = sameMutableArray# arr1# arr2#
+
+sameMutableByteArray (_MutableByteArray _ arr1#) (_MutableByteArray _ arr2#)
+ = sameMutableByteArray# arr1# arr2#
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[PreludeGlaST-variables]{Variables}
+%* *
+%************************************************************************
+
+\begin{code}
+type MutableVar s a = _MutableArray s Int a
+\end{code}
+
+\begin{code}
+newVar :: a -> _ST s (MutableVar s a)
+readVar :: MutableVar s a -> _ST s a
+writeVar :: MutableVar s a -> a -> _ST s ()
+sameVar :: MutableVar s a -> MutableVar s a -> Bool
+
+newVar init s = newArray (0,0) init s
+readVar v s = readArray v 0 s
+writeVar v val s = writeArray v 0 val s
+sameVar v1 v2 = sameMutableArray v1 v2
+\end{code}
diff --git a/ghc/lib/glaExts/PreludeGlaST_mc.hi b/ghc/lib/glaExts/PreludeGlaST_mc.hi
new file mode 100644
index 0000000000..b771c3dcb1
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_mc.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST_mg.hi b/ghc/lib/glaExts/PreludeGlaST_mg.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_mg.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST_mp.hi b/ghc/lib/glaExts/PreludeGlaST_mp.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_mp.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST_mr.hi b/ghc/lib/glaExts/PreludeGlaST_mr.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_mr.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST_mt.hi b/ghc/lib/glaExts/PreludeGlaST_mt.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_mt.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST_p.hi b/ghc/lib/glaExts/PreludeGlaST_p.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_p.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeGlaST_t.hi b/ghc/lib/glaExts/PreludeGlaST_t.hi
new file mode 100644
index 0000000000..def8023c24
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeGlaST_t.hi
@@ -0,0 +1,187 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeGlaST where
+import PreludeArray(Array(..), _ByteArray(..))
+import PreludeBuiltin(Char(..), Double(..), Float(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ix(..), _CCallable(..), _CReturnable(..))
+import PreludePrimIO(appendChanPrimIO, appendFilePrimIO, fixPrimIO, getArgsPrimIO, listPrimIO, mapAndUnzipPrimIO, mapPrimIO, readChanPrimIO, returnPrimIO, seqPrimIO, thenPrimIO, unsafeInterleavePrimIO, unsafePerformPrimIO)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 9 `seqST`
+infixr 9 `seqStrictlyST`
+infixr 1 `thenPrimIO`
+infixr 9 `thenST`
+infixr 9 `thenStrictlyST`
+data Array a b = _Array (a, a) (Array# b)
+type MutableVar a b = _MutableArray a Int b
+type ST a b = _State a -> (b, _State a)
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+data _FILE = _FILE Addr#
+data _MutableArray a b c = _MutableArray (b, b) (MutableArray# a c)
+data _MutableByteArray a b = _MutableByteArray (b, b) (MutableByteArray# a)
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+boundsOfArray :: Ix c => _MutableArray a c b -> (c, c)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u2) (u4 :: u2) (u5 :: MutableArray# u0 u1) -> _!_ _TUP_2 [u2, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 XC 2 _/\_ u0 u1 u2 -> \ (u3 :: {{Ix u2}}) (u4 :: _MutableArray u0 u2 u1) -> case u4 of { _ALG_ _MutableArray (u5 :: (u2, u2)) (u6 :: MutableArray# u0 u1) -> u5; _NO_DEFLT_ } _SPECIALISE_ [ _N_, _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: Int) (u3 :: Int) (u4 :: MutableArray# u0 u1) -> _!_ _TUP_2 [Int, Int] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u3 :: (Int, Int)) (u4 :: MutableArray# u0 u1) -> u3; _NO_DEFLT_ } _N_ } #-}
+boundsOfByteArray :: Ix b => _MutableByteArray a b -> (b, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: MutableByteArray# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 XC 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: _MutableByteArray u0 u1) -> case u3 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> u4; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: Int) (u2 :: Int) (u3 :: MutableByteArray# u0) -> _!_ _TUP_2 [Int, Int] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: _MutableByteArray u0 Int) -> case u1 of { _ALG_ _MutableByteArray (u2 :: (Int, Int)) (u3 :: MutableByteArray# u0) -> u2; _NO_DEFLT_ } _N_ } #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+forkPrimIO :: (_State _RealWorld -> ((), _State _RealWorld)) -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeGlaST forkST { _RealWorld } _N_ #-}
+forkST :: (_State a -> ((), _State a)) -> _State a -> ((), _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: _State u0 -> ((), _State u0)) -> u1 _N_ #-}
+freezeAddrArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeCharArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+freezeDoubleArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeFloatArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freezeIntArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(U(LL)P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+indexAddrArray :: Ix a => _ByteArray a -> a -> _Addr
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexAddrArray# [] [u3, u5] of { _PRIM_ (u6 :: Addr#) -> _!_ A# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexAddrArray# [] [u9, ua] of { _PRIM_ (ub :: Addr#) -> _!_ A# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexAddrOffAddr :: _Addr -> Int -> _Addr
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexAddrOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Addr#) -> _!_ A# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexAddrOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Addr#) -> _!_ A# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexCharArray :: Ix a => _ByteArray a -> a -> Char
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexCharArray# [] [u3, u5] of { _PRIM_ (u6 :: Char#) -> _!_ C# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexCharArray# [] [u9, ua] of { _PRIM_ (ub :: Char#) -> _!_ C# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexCharOffAddr :: _Addr -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexCharOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexCharOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Char#) -> _!_ C# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexDoubleArray :: Ix a => _ByteArray a -> a -> Double
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexDoubleArray# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexDoubleArray# [] [u9, ua] of { _PRIM_ (ub :: Double#) -> _!_ D# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexDoubleOffAddr :: _Addr -> Int -> Double
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexDoubleOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatArray :: Ix a => _ByteArray a -> a -> Float
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexFloatArray# [] [u3, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexFloatArray# [] [u9, ua] of { _PRIM_ (ub :: Float#) -> _!_ F# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexFloatOffAddr :: _Addr -> Int -> Float
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexFloatOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexFloatOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+indexIntArray :: Ix a => _ByteArray a -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 7 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) (u2 :: (u0, u0)) (u3 :: ByteArray#) (u4 :: u0) -> case _APP_ u1 [ u2, u4 ] of { _ALG_ I# (u5 :: Int#) -> case _#_ indexIntArray# [] [u3, u5] of { _PRIM_ (u6 :: Int#) -> _!_ I# [] [u6] }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: _ByteArray u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_4 (u4 :: {{Ord u0}}) (u5 :: (u0, u0) -> [u0]) (u6 :: (u0, u0) -> u0 -> Int) (u7 :: (u0, u0) -> u0 -> Bool) -> case u2 of { _ALG_ _ByteArray (u8 :: (u0, u0)) (u9 :: ByteArray#) -> case _APP_ u6 [ u8, u3 ] of { _ALG_ I# (ua :: Int#) -> case _#_ indexIntArray# [] [u9, ua] of { _PRIM_ (ub :: Int#) -> _!_ I# [] [ub] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indexIntOffAddr :: _Addr -> Int -> Int
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Addr#) (u1 :: Int#) -> case _#_ indexIntOffAddr# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Addr) (u1 :: Int) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ indexIntOffAddr# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+listST :: [_State a -> (b, _State a)] -> _State a -> ([b], _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapAndUnzipST :: (a -> _State b -> ((c, d), _State b)) -> [a] -> _State b -> (([c], [d]), _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapST :: (a -> _State b -> (c, _State b)) -> [a] -> _State b -> ([c], _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_ #-}
+newAddrArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newArray :: Ix b => (b, b) -> c -> _State a -> (_MutableArray a b c, _State a)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1221 _N_ _S_ "U(ASLA)U(LL)LU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(U(P)U(P))LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 121 _N_ _S_ "U(SS)LU(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newCharArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newDoubleArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newFloatArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIntArray :: Ix b => (b, b) -> _State a -> (_MutableByteArray a b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(ASLA)U(LL)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+newVar :: b -> _State a -> (_MutableArray a Int b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readAddrArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (_Addr, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readArray :: Ix a => _MutableArray b a c -> a -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(SS)P)U(U(P)U(P))U(P)" {_A_ 5 _U_ 22212 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readCharArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Char, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readDoubleArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Double, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readFloatArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Float, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIntArray :: Ix a => _MutableByteArray b a -> a -> _State b -> (Int, _State b)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1121 _N_ _S_ "U(AASA)U(LP)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 3 _U_ 111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+readVar :: _MutableArray a Int b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+returnST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3] _N_ #-}
+returnStrictlyST :: b -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: _State u0) -> case u3 of { _ALG_ S# (u4 :: State# u0) -> _!_ _TUP_2 [u1, (_State u0)] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+sameMutableArray :: _MutableArray a b c -> _MutableArray a b c -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 3 2 XX 1 _/\_ u0 u1 u2 -> \ (u3 :: MutableArray# u0 u2) (u4 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u3, u4] _N_} _F_ _IF_ARGS_ 3 2 CC 3 _/\_ u0 u1 u2 -> \ (u3 :: _MutableArray u0 u1 u2) (u4 :: _MutableArray u0 u1 u2) -> case u3 of { _ALG_ _MutableArray (u5 :: (u1, u1)) (u6 :: MutableArray# u0 u2) -> case u4 of { _ALG_ _MutableArray (u7 :: (u1, u1)) (u8 :: MutableArray# u0 u2) -> _#_ sameMutableArray# [u0, u2] [u6, u8]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameMutableByteArray :: _MutableByteArray a b -> _MutableByteArray a b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableByteArray# u0) (u3 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableByteArray u0 u1) (u3 :: _MutableByteArray u0 u1) -> case u2 of { _ALG_ _MutableByteArray (u4 :: (u1, u1)) (u5 :: MutableByteArray# u0) -> case u3 of { _ALG_ _MutableByteArray (u6 :: (u1, u1)) (u7 :: MutableByteArray# u0) -> _#_ sameMutableByteArray# [u0] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sameVar :: _MutableArray a Int b -> _MutableArray a Int b -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: MutableArray# u0 u1) (u3 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 2 CC 3 _/\_ u0 u1 -> \ (u2 :: _MutableArray u0 Int u1) (u3 :: _MutableArray u0 Int u1) -> case u2 of { _ALG_ _MutableArray (u4 :: (Int, Int)) (u5 :: MutableArray# u0 u1) -> case u3 of { _ALG_ _MutableArray (u6 :: (Int, Int)) (u7 :: MutableArray# u0 u1) -> _#_ sameMutableArray# [u0, u1] [u5, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+seqST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_ #-}
+seqStrictlyST :: (_State b -> (a, _State b)) -> (_State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+thenST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+thenStrictlyST :: (_State b -> (a, _State b)) -> (a -> _State b -> (c, _State b)) -> _State b -> (c, _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: _State u1 -> (u0, _State u1)) (u4 :: u0 -> _State u1 -> (u2, _State u1)) (u5 :: _State u1) -> case _APP_ u3 [ u5 ] of { _ALG_ _TUP_2 (u6 :: u0) (u7 :: _State u1) -> _APP_ u4 [ u6, u7 ]; _NO_DEFLT_ } _N_ #-}
+unsafeFreezeArray :: Ix b => _MutableArray a b c -> _State a -> (Array b c, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeFreezeByteArray :: Ix b => _MutableByteArray a b -> _State a -> (_ByteArray b, _State a)
+ {-# GHC_PRAGMA _A_ 3 _U_ 011 _N_ _S_ "AU(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeAddrArray :: Ix a => _MutableByteArray b a -> a -> _Addr -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeArray :: Ix a => _MutableArray c a b -> a -> b -> _State c -> ((), _State c)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11221 _N_ _S_ "U(AASA)U(LP)LLU(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(U(P)U(P))P)U(P)LU(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_, _N_ ] 1 { _A_ 4 _U_ 1121 _N_ _S_ "U(U(SS)P)U(U(P)U(P))LU(P)" {_A_ 5 _U_ 12122 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeCharArray :: Ix a => _MutableByteArray b a -> a -> Char -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeDoubleArray :: Ix a => _MutableByteArray b a -> a -> Double -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeFloatArray :: Ix a => _MutableByteArray b a -> a -> Float -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIntArray :: Ix a => _MutableByteArray b a -> a -> Int -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11211 _N_ _S_ "U(AASA)U(LP)LU(P)U(P)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 4 _U_ 1111 _N_ _S_ "U(U(U(P)U(P))P)U(P)U(P)U(P)" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+writeVar :: _MutableArray b Int a -> a -> _State b -> ((), _State b)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(U(P)U(P))P)LU(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludeMain13_help.hi b/ghc/lib/glaExts/PreludeMain13_help.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_1s.hi b/ghc/lib/glaExts/PreludeMain13_help_1s.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_1s.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_2s.hi b/ghc/lib/glaExts/PreludeMain13_help_2s.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_2s.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_du.hi b/ghc/lib/glaExts/PreludeMain13_help_du.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_du.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_i.hi b/ghc/lib/glaExts/PreludeMain13_help_i.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_i.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_j.hi b/ghc/lib/glaExts/PreludeMain13_help_j.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_j.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_k.hi b/ghc/lib/glaExts/PreludeMain13_help_k.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_k.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_l.hi b/ghc/lib/glaExts/PreludeMain13_help_l.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_l.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_m.hi b/ghc/lib/glaExts/PreludeMain13_help_m.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_m.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_mc.hi b/ghc/lib/glaExts/PreludeMain13_help_mc.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_mc.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_mg.hi b/ghc/lib/glaExts/PreludeMain13_help_mg.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_mg.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_mp.hi b/ghc/lib/glaExts/PreludeMain13_help_mp.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_mp.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_mr.hi b/ghc/lib/glaExts/PreludeMain13_help_mr.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_mr.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_mt.hi b/ghc/lib/glaExts/PreludeMain13_help_mt.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_mt.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_n.hi b/ghc/lib/glaExts/PreludeMain13_help_n.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_n.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_o.hi b/ghc/lib/glaExts/PreludeMain13_help_o.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_o.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_p.hi b/ghc/lib/glaExts/PreludeMain13_help_p.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_p.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMain13_help_t.hi b/ghc/lib/glaExts/PreludeMain13_help_t.hi
new file mode 100644
index 0000000000..c84bb4bb4c
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMain13_help_t.hi
@@ -0,0 +1,5 @@
+interface PreludeMain13_help where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Main(main)
+main :: _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
diff --git a/ghc/lib/glaExts/PreludeMainIO_help.hi b/ghc/lib/glaExts/PreludeMainIO_help.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_1s.hi b/ghc/lib/glaExts/PreludeMainIO_help_1s.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_1s.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_2s.hi b/ghc/lib/glaExts/PreludeMainIO_help_2s.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_2s.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_du.hi b/ghc/lib/glaExts/PreludeMainIO_help_du.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_du.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_i.hi b/ghc/lib/glaExts/PreludeMainIO_help_i.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_i.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_j.hi b/ghc/lib/glaExts/PreludeMainIO_help_j.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_j.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_k.hi b/ghc/lib/glaExts/PreludeMainIO_help_k.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_k.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_l.hi b/ghc/lib/glaExts/PreludeMainIO_help_l.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_l.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_m.hi b/ghc/lib/glaExts/PreludeMainIO_help_m.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_m.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_mc.hi b/ghc/lib/glaExts/PreludeMainIO_help_mc.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_mc.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_mg.hi b/ghc/lib/glaExts/PreludeMainIO_help_mg.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_mg.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_mp.hi b/ghc/lib/glaExts/PreludeMainIO_help_mp.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_mp.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_mr.hi b/ghc/lib/glaExts/PreludeMainIO_help_mr.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_mr.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_mt.hi b/ghc/lib/glaExts/PreludeMainIO_help_mt.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_mt.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_n.hi b/ghc/lib/glaExts/PreludeMainIO_help_n.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_n.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_o.hi b/ghc/lib/glaExts/PreludeMainIO_help_o.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_o.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_p.hi b/ghc/lib/glaExts/PreludeMainIO_help_p.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_p.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludeMainIO_help_t.hi b/ghc/lib/glaExts/PreludeMainIO_help_t.hi
new file mode 100644
index 0000000000..55aba6282a
--- /dev/null
+++ b/ghc/lib/glaExts/PreludeMainIO_help_t.hi
@@ -0,0 +1,5 @@
+interface PreludeMainIO_help where
+import PreludeIO(Request,Response)
+import Main ( main )
+
+main :: [Response] -> [Request]
diff --git a/ghc/lib/glaExts/PreludePrimIO.hi b/ghc/lib/glaExts/PreludePrimIO.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO.lhs b/ghc/lib/glaExts/PreludePrimIO.lhs
new file mode 100644
index 0000000000..9c4d67605b
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO.lhs
@@ -0,0 +1,293 @@
+%
+% (c) The AQUA Project, Glasgow University, 1994-1995
+%
+\section[PrimIO]{@PrimIO@ monad}
+
+This sits on top of the state-transformer monad. See
+state-interface.verb.
+
+We follow the Haskell~1.3 I/O proposal nomenclature.
+
+\begin{code}
+module PreludePrimIO (
+ -- PrimIO(..): no, the compiler already knows about it
+
+ fixPrimIO,
+ listPrimIO,
+ mapAndUnzipPrimIO,
+ mapPrimIO,
+ returnPrimIO,
+ seqPrimIO,
+ thenPrimIO,
+ unsafePerformPrimIO,
+ unsafeInterleavePrimIO,
+-- forkPrimIO,
+
+ -- all the Stdio stuff (this is how you get to it)
+ -- (well, why not?)
+ fclose, fdopen, fflush, fopen, fread, freopen,
+ fwrite, _FILE(..),
+
+ -- IVars and MVars come from here, too
+ _IVar, _MVar, -- abstract
+ IVar(..), MVar(..), -- for convenience
+ newEmptyMVar, takeMVar, putMVar, newMVar, readMVar, swapMVar,
+ newIVar, readIVar, writeIVar,
+
+ threadWait, threadDelay,
+
+ -- backward compatibility -- don't use!
+ readChanPrimIO,
+ appendChanPrimIO,
+ appendFilePrimIO,
+ getArgsPrimIO,
+
+ -- make interface self-sufficient
+ fixST, unsafeInterleaveST
+ ) where
+
+import PreludeGlaST
+import TyArray ( Array(..) )
+import Cls
+import Core
+import List ( (++), map )
+import PreludeDialogueIO ( processIORequest )
+import TyIO
+import Stdio
+
+import PreludeMonadicIO ( IO(..), Either(..), return, (>>=), (>>) )
+import PreludeIOError ( IOError13 )
+
+infixr 1 `thenPrimIO`, `seqPrimIO`
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[IO-monad]{The @IO@ monad}
+%* *
+%************************************************************************
+
+\begin{code}
+type PrimIO a = _ST _RealWorld a
+\end{code}
+
+The usual business:
+\begin{code}
+returnPrimIO :: a -> PrimIO a
+thenPrimIO :: PrimIO a -> (a -> PrimIO b) -> PrimIO b
+seqPrimIO :: PrimIO a -> PrimIO b -> PrimIO b
+fixPrimIO :: (a -> PrimIO a) -> PrimIO a
+listPrimIO :: [PrimIO a] -> PrimIO [a]
+mapPrimIO :: (a -> PrimIO b) -> [a] -> PrimIO [b]
+mapAndUnzipPrimIO :: (a -> PrimIO (b,c)) -> [a] -> PrimIO ([b],[c])
+
+{-# INLINE returnPrimIO #-}
+{-# INLINE thenPrimIO #-}
+{-# INLINE seqPrimIO #-}
+
+returnPrimIO x s = returnStrictlyST x s
+thenPrimIO m k s = thenStrictlyST m k s
+seqPrimIO m k s = seqStrictlyST m k s
+
+fixPrimIO = fixST
+
+listPrimIO [] = returnPrimIO []
+listPrimIO (m:ms) = m `thenPrimIO` \ x ->
+ listPrimIO ms `thenPrimIO` \xs ->
+ returnPrimIO (x:xs)
+
+-- An earlier definition of listPrimIO in terms of foldrPrimIO
+-- was just wrong (it did the operations in the wrong order)
+-- so I deleted foldrPrimIO and defined listPrimIO directly.
+-- SLPJ Feb 95
+
+mapPrimIO f ms = listPrimIO (map f ms)
+
+mapAndUnzipPrimIO f [] = returnPrimIO ([], [])
+mapAndUnzipPrimIO f (m:ms)
+ = f m `thenPrimIO` \ ( r1, r2) ->
+ mapAndUnzipPrimIO f ms `thenPrimIO` \ (rs1, rs2) ->
+ returnPrimIO (r1:rs1, r2:rs2)
+\end{code}
+
+\begin{code}
+unsafePerformPrimIO :: PrimIO a -> a
+unsafeInterleavePrimIO :: PrimIO a -> PrimIO a
+
+unsafePerformPrimIO k = case (k (S# realWorld#)) of (r, _) -> r
+
+unsafeInterleavePrimIO m s = unsafeInterleaveST m s
+\end{code}
+
+Transitional: for pre-1.3 systems: Don't use them!
+\begin{code}
+readChanPrimIO :: String -> PrimIO String
+appendChanPrimIO :: String -> String -> PrimIO ()
+appendFilePrimIO :: String -> String -> PrimIO ()
+getArgsPrimIO :: PrimIO [String]
+
+readChanPrimIO c = processIORequestString ( ReadChan c )
+appendChanPrimIO c s = processIORequestUnit ( AppendChan c s )
+appendFilePrimIO f s = processIORequestUnit ( AppendFile f s )
+getArgsPrimIO = processIORequestStrList ( GetArgs )
+
+processIORequestUnit :: Request -> PrimIO ()
+processIORequestString :: Request -> PrimIO String
+processIORequestStrList :: Request -> PrimIO [String]
+
+processIORequestUnit req
+ = processIORequest req `thenPrimIO` \ resp ->
+ case resp of
+ Success -> returnPrimIO ()
+ Failure ioerr -> error (ioErrMsg ioerr)
+ _ -> error "funny Response, expected a Success"
+
+processIORequestString req
+ = processIORequest req `thenPrimIO` \ resp ->
+ case resp of
+ Str str -> returnPrimIO str
+ Failure ioerr -> error (ioErrMsg ioerr)
+ _ -> error "funny Response, expected a String"
+
+processIORequestStrList req
+ = processIORequest req `thenPrimIO` \ resp ->
+ case resp of
+ StrList strl -> returnPrimIO strl
+ Failure ioerr -> error (ioErrMsg ioerr)
+ _ -> error "funny Response, expected a [String]"
+
+ioErrMsg :: IOError -> String
+ioErrMsg (ReadError s) = "Read Error: " ++ s
+ioErrMsg (WriteError s) = "Write Error: " ++ s
+ioErrMsg (FormatError s) = "Format Error: " ++ s
+ioErrMsg (SearchError s) = "Search Error: " ++ s
+ioErrMsg (OtherError s) = "Other Error: " ++ s
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[PreludeGlaST-mvars]{M-Structures}
+%* *
+%************************************************************************
+
+M-Vars are rendezvous points for concurrent threads. They begin
+empty, and any attempt to read an empty M-Var blocks. When an M-Var
+is written, a single blocked thread may be freed. Reading an M-Var
+toggles its state from full back to empty. Therefore, any value
+written to an M-Var may only be read once. Multiple reads and writes
+are allowed, but there must be at least one read between any two
+writes.
+
+\begin{code}
+data _MVar a = _MVar (SynchVar# _RealWorld a)
+type MVar a = _MVar a
+\end{code}
+
+\begin{code}
+newEmptyMVar :: IO (_MVar a)
+
+newEmptyMVar (S# s#) =
+ case newSynchVar# s# of
+ StateAndSynchVar# s2# svar# -> (Right (_MVar svar#), S# s2#)
+
+takeMVar :: _MVar a -> IO a
+
+takeMVar (_MVar mvar#) (S# s#) =
+ case takeMVar# mvar# s# of
+ StateAndPtr# s2# r -> (Right r, S# s2#)
+
+putMVar :: _MVar a -> a -> IO ()
+
+putMVar (_MVar mvar#) x (S# s#) =
+ case putMVar# mvar# x s# of
+ s2# -> (Right (), S# s2#)
+
+newMVar :: a -> IO (_MVar a)
+
+newMVar value =
+ newEmptyMVar >>= \ mvar ->
+ putMVar mvar value >>
+ return mvar
+
+readMVar :: _MVar a -> IO a
+
+readMVar mvar =
+ takeMVar mvar >>= \ value ->
+ putMVar mvar value >>
+ return value
+
+swapMVar :: _MVar a -> a -> IO a
+
+swapMVar mvar new =
+ takeMVar mvar >>= \ old ->
+ putMVar mvar new >>
+ return old
+
+\end{code}
+
+%************************************************************************
+%* *
+\subsection[PreludeGlaST-ivars]{I-Structures}
+%* *
+%************************************************************************
+
+I-Vars are write-once variables. They start out empty, and any threads that
+attempt to read them will block until they are filled. Once they are written,
+any blocked threads are freed, and additional reads are permitted. Attempting
+to write a value to a full I-Var results in a runtime error.
+
+\begin{code}
+data _IVar a = _IVar (SynchVar# _RealWorld a)
+type IVar a = _IVar a
+\end{code}
+
+\begin{code}
+newIVar :: IO (_IVar a)
+
+newIVar (S# s#) =
+ case newSynchVar# s# of
+ StateAndSynchVar# s2# svar# -> (Right (_IVar svar#), S# s2#)
+
+readIVar :: _IVar a -> IO a
+
+readIVar (_IVar ivar#) (S# s#) =
+ case readIVar# ivar# s# of
+ StateAndPtr# s2# r -> (Right r, S# s2#)
+
+writeIVar :: _IVar a -> a -> IO ()
+
+writeIVar (_IVar ivar#) x (S# s#) =
+ case writeIVar# ivar# x s# of
+ s2# -> (Right (), S# s2#)
+
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection{Thread Wait Functions}
+%* *
+%************************************************************************
+
+@threadDelay@ delays rescheduling of a thread until the indicated
+number of microseconds have elapsed. Generally, the microseconds are
+counted by the context switch timer, which ticks in virtual time;
+however, when there are no runnable threads, we don't accumulate any
+virtual time, so we start ticking in real time. (The granularity is
+the effective resolution of the context switch timer, so it is
+affected by the RTS -C option.)
+
+@threadWait@ delays rescheduling of a thread until input on the
+specified file descriptor is available for reading (just like select).
+
+\begin{code}
+threadDelay, threadWait :: Int -> IO ()
+
+threadDelay (I# x#) (S# s#) =
+ case delay# x# s# of
+ s2# -> (Right (), S# s2#)
+
+threadWait (I# x#) (S# s#) =
+ case wait# x# s# of
+ s2# -> (Right (), S# s2#)
+\end{code}
diff --git a/ghc/lib/glaExts/PreludePrimIO_mc.hi b/ghc/lib/glaExts/PreludePrimIO_mc.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_mc.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO_mg.hi b/ghc/lib/glaExts/PreludePrimIO_mg.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_mg.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO_mp.hi b/ghc/lib/glaExts/PreludePrimIO_mp.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_mp.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO_mr.hi b/ghc/lib/glaExts/PreludePrimIO_mr.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_mr.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO_mt.hi b/ghc/lib/glaExts/PreludePrimIO_mt.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_mt.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO_p.hi b/ghc/lib/glaExts/PreludePrimIO_p.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_p.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/PreludePrimIO_t.hi b/ghc/lib/glaExts/PreludePrimIO_t.hi
new file mode 100644
index 0000000000..d9419fde12
--- /dev/null
+++ b/ghc/lib/glaExts/PreludePrimIO_t.hi
@@ -0,0 +1,82 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePrimIO where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeGlaST(fixST, unsafeInterleaveST)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import Stdio(_FILE(..), fclose, fdopen, fflush, fopen, fread, freopen, fwrite)
+infixr 1 `seqPrimIO`
+infixr 1 `thenPrimIO`
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _FILE = _FILE Addr#
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+appendChanPrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+appendFilePrimIO :: [Char] -> [Char] -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+fixPrimIO :: (a -> _State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST fixST { _RealWorld } { u0 } _N_ #-}
+fixST :: (b -> _State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getArgsPrimIO :: _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+listPrimIO :: [_State _RealWorld -> (a, _State _RealWorld)] -> _State _RealWorld -> ([a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+mapAndUnzipPrimIO :: (a -> _State _RealWorld -> ((b, c), _State _RealWorld)) -> [a] -> _State _RealWorld -> (([b], [c]), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+mapPrimIO :: (a -> _State _RealWorld -> (b, _State _RealWorld)) -> [a] -> _State _RealWorld -> ([b], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSL" _N_ _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChanPrimIO :: [Char] -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+returnPrimIO :: a -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> case u2 of { _ALG_ S# (u3 :: State# _RealWorld) -> _!_ _TUP_2 [u0, (_State _RealWorld)] [u1, u2]; _NO_DEFLT_ } _N_ #-}
+seqPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (_State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]; _NO_DEFLT_ } _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+thenPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> (a -> _State _RealWorld -> (b, _State _RealWorld)) -> _State _RealWorld -> (b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SSL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafeInterleavePrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: _State _RealWorld -> (u0, _State _RealWorld)) (u2 :: _State _RealWorld) -> _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeGlaST unsafeInterleaveST { _RealWorld } { u0 } [ u1, u2 ] _N_ #-}
+unsafeInterleaveST :: (_State a -> (b, _State a)) -> _State a -> (b, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unsafePerformPrimIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio.hi b/ghc/lib/glaExts/Stdio.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio.lhs b/ghc/lib/glaExts/Stdio.lhs
new file mode 100644
index 0000000000..518e504da0
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio.lhs
@@ -0,0 +1,116 @@
+%
+% (c) The AQUA Project, Glasgow University, 1993-1994
+%
+\section[Stdio]{Wrappers for C standard-IO library}
+
+\begin{code}
+module Stdio where
+
+import Cls
+import Core
+import IInt
+import IList
+import List ( (++), foldr )
+import PS -- ( _PackedString )
+import TyArray
+import PreludeGlaST
+import Text
+
+data _FILE = _FILE Addr#
+instance _CCallable _FILE
+instance _CReturnable _FILE
+
+instance Eq _FILE where
+ (_FILE a) == (_FILE b) = a `eqAddr#` b
+ (_FILE a) /= (_FILE b) = if a `eqAddr#` b then False else True
+
+type FILE_DESCRIPTOR = Int
+
+fopen :: String -- as w/ C fopen, name
+ -> String -- type of open (as w/ C)
+ -> PrimIO _FILE -- FILE* returned; will be ``NULL''
+ -- if things go wrong...
+
+-- similarly...
+freopen :: String -> String -> _FILE -> PrimIO _FILE
+fdopen :: FILE_DESCRIPTOR -> String -> PrimIO _FILE
+
+fopen name descr
+ = _casm_ ``%r = (A_) fopen((char *) %0, (char *) %1);'' name descr
+
+freopen name descr file
+ = _casm_ ``%r = (A_) freopen((char *) %0, (char *) %1, (FILE *) %2);''
+ name descr file
+
+fdopen fd descr
+ = _casm_ ``%r = (A_) fdopen((int) %0, (char *) %1);'' fd descr
+
+---------------------------------------------------------------
+fclose, fflush :: _FILE -> PrimIO Int
+
+fclose file
+ = _casm_ ``%r = fclose((FILE *) %0);'' file
+
+fflush file
+ = _casm_ ``%r = fflush((FILE *) %0);'' file
+
+fread :: Int -> Int -> _FILE -> PrimIO (Int, _ByteArray Int)
+
+fread size nitems file
+ = let
+ barr_end = size * nitems - 1
+ in
+ newCharArray (0::Int, barr_end){-malloc!?-} `thenStrictlyST` \ barr ->
+
+ _ccall_ fread barr size nitems file `thenPrimIO` \ num_read ->
+
+ unsafeFreezeByteArray barr `thenStrictlyST` \ frozen ->
+
+ returnPrimIO (num_read, frozen)
+
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> PrimIO Int
+
+fwrite barr size nitems file
+ = _ccall_ fwrite barr size nitems file `thenPrimIO` \ num_written ->
+ returnPrimIO num_written
+
+--fgetc :: _FILE -> B Char
+--fputc :: Char -> _FILE -> B Char
+
+-- ===============================================================
+{- LATER
+
+-- in Haskell, these are just synonyms for getc and putc
+
+gets :: B [Char]
+fgets :: C_FILE -> Int -> B [Char]
+puts :: [Char] -> B Bool -- ??? ToDo: better error indicator
+fputs :: [Char] -> C_FILE -> B Bool
+
+-- getw, putw omitted
+
+feof :: C_FILE -> B Int -- ToDo: Bool?
+ferror :: C_FILE -> B Int -- ToDo: something else?
+fileno :: C_FILE -> B Int
+clearerr :: C_FILE -> B ()
+
+popen :: [Char] -> [Char] -> B C_FILE
+pclose :: C_FILE -> B Int -- exit status
+
+tmpfile :: B C_FILE -- B (Maybe C_FILE) ???
+tmpnam :: [Char] -> B [Char]
+tempnam :: [Char] -> [Char] -> B [Char]
+
+lseek :: C_FileDes -> C_off_t -> Int -> B C_off_t
+
+ctermid :: B [Char]
+cuserid :: B [Char]
+
+-- nothing yet:
+-- printf
+-- fprintf
+-- sprintf
+-- scanf
+-- fscanf
+-}
+\end{code}
diff --git a/ghc/lib/glaExts/Stdio_mc.hi b/ghc/lib/glaExts/Stdio_mc.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_mc.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio_mg.hi b/ghc/lib/glaExts/Stdio_mg.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_mg.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio_mp.hi b/ghc/lib/glaExts/Stdio_mp.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_mp.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio_mr.hi b/ghc/lib/glaExts/Stdio_mr.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_mr.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio_mt.hi b/ghc/lib/glaExts/Stdio_mt.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_mt.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio_p.hi b/ghc/lib/glaExts/Stdio_p.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_p.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/Stdio_t.hi b/ghc/lib/glaExts/Stdio_t.hi
new file mode 100644
index 0000000000..a2affdc40c
--- /dev/null
+++ b/ghc/lib/glaExts/Stdio_t.hi
@@ -0,0 +1,30 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Stdio where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), _CCallable(..), _CReturnable(..))
+type FILE_DESCRIPTOR = Int
+data _FILE = _FILE Addr#
+fclose :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fdopen :: Int -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fflush :: _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fopen :: [Char] -> [Char] -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fread :: Int -> Int -> _FILE -> _State _RealWorld -> ((Int, _ByteArray Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(P)U(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freopen :: [Char] -> [Char] -> _FILE -> _State _RealWorld -> (_FILE, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2211 _N_ _S_ "LLU(P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fwrite :: _ByteArray Int -> Int -> Int -> _FILE -> _State _RealWorld -> (Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "U(AP)U(P)U(P)U(P)U(P)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_FILE -> _FILE -> Bool), (_FILE -> _FILE -> Bool)] [_CONSTM_ Eq (==) (_FILE), _CONSTM_ Eq (/=) (_FILE)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Addr#) (u1 :: Addr#) -> case _#_ eqAddr# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: _FILE) (u1 :: _FILE) -> case u0 of { _ALG_ _ORIG_ Stdio _FILE (u2 :: Addr#) -> case u1 of { _ALG_ _ORIG_ Stdio _FILE (u3 :: Addr#) -> case _#_ eqAddr# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance _CCallable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _FILE
+ {-# GHC_PRAGMA _M_ Stdio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/glaExts/lazyimp.lit b/ghc/lib/glaExts/lazyimp.lit
new file mode 100644
index 0000000000..626243058c
--- /dev/null
+++ b/ghc/lib/glaExts/lazyimp.lit
@@ -0,0 +1,70 @@
+\documentstyle[literate]{article}
+\title{Lazy Imperative Programming}
+\begin{document}
+By John Launchbury, though he may not know it.
+
+This code describes {\em sequences}, which are independent state-based
+computations, typically involving (primitive) arrays.
+
+It also includes the basic code for Glasgow I/O, which is similar.
+
+The ``layers'' here are:
+\begin{description}
+\item[Bottom:]
+``World'' types; basic state-transformer monad.
+
+\item[Seq/IO PrimOps:]
+The true-blue primitives wired into the compiler.
+
+\item[Seq (incl arrays...) and IO monads:]
+Built on the above.
+
+\item[Variables:]
+Built on Seq.
+
+\item[PackedStrings:]
+Built on Seq.
+
+\item[DialogueIO:]
+Built on IO.
+
+\item[MainIO:]
+Built on DialogueIO.
+\end{description}
+
+%-----------------------------------------------------
+% "World" types and odd types for returning
+% several primitive things
+\input{PreludeWorld.lhs}
+\input{SemiPrelude.lhs}
+
+%-----------------------------------------------------
+% State transformer monad
+\input{PreludeST.lhs}
+
+%-----------------------------------------------------
+% basic Glasgow IO
+\input{PreludeGlaInOut.lhs}
+\input{PreludeGlaIO.lhs}
+
+%-----------------------------------------------------
+% Seq/array stuff
+\input{PreludeGlaArr.lhs}
+\input{PreludeGlaArray.lhs}
+
+%-----------------------------------------------------
+% Variables
+\input{PreludeVars.lhs}
+
+%-----------------------------------------------------
+% PackedString
+\input{PackedString.lhs}
+
+%-----------------------------------------------------
+% DialogueIO
+\input{PreludeDialogueIO.lhs}
+
+%-----------------------------------------------------
+% MainIO
+\input{MainIO.lhs}
+\end{document}
diff --git a/ghc/lib/haskell-1.3/LibCPUTime.hi b/ghc/lib/haskell-1.3/LibCPUTime.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime.lhs b/ghc/lib/haskell-1.3/LibCPUTime.lhs
new file mode 100644
index 0000000000..c3db93ed45
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime.lhs
@@ -0,0 +1,31 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibCPUTime]{Haskell 1.3 CPU Time Library}
+
+\begin{code}
+module LibCPUTime where
+
+import PreludeGlaST
+
+getCPUTime :: IO Integer
+getCPUTime =
+ _ccall_ getCPUTime `thenPrimIO` \ ptr@(A# ptr#) ->
+ if ptr /= ``NULL'' then
+ return (fromInt (I# (indexIntOffAddr# ptr# 0#)) * 1000000000 +
+ fromInt (I# (indexIntOffAddr# ptr# 1#)) +
+ fromInt (I# (indexIntOffAddr# ptr# 2#)) * 1000000000 +
+ fromInt (I# (indexIntOffAddr# ptr# 3#)))
+ else
+ failWith (UnsupportedOperation "can't get CPU time")
+
+\end{code}
+
+Computation $getCPUTime$ returns the number of nanoseconds CPU time
+used by the current program. The precision of this result is
+implementation-dependent.
+
+
+
+
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mc.hi b/ghc/lib/haskell-1.3/LibCPUTime_mc.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mc.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mg.hi b/ghc/lib/haskell-1.3/LibCPUTime_mg.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mg.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mp.hi b/ghc/lib/haskell-1.3/LibCPUTime_mp.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mp.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mr.hi b/ghc/lib/haskell-1.3/LibCPUTime_mr.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mr.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mt.hi b/ghc/lib/haskell-1.3/LibCPUTime_mt.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mt.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_p.hi b/ghc/lib/haskell-1.3/LibCPUTime_p.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_p.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_t.hi b/ghc/lib/haskell-1.3/LibCPUTime_t.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_t.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory.hi b/ghc/lib/haskell-1.3/LibDirectory.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory.lhs b/ghc/lib/haskell-1.3/LibDirectory.lhs
new file mode 100644
index 0000000000..2aed6e3d4d
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory.lhs
@@ -0,0 +1,376 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibDirectory]{Haskell 1.3 Directory Operations}
+
+A directory contains a series of entries, each of which is a named
+reference to a file system object (file, directory etc.). Some
+entries may be hidden, inaccessible, or have some administrative
+function (e.g. "." or ".." under POSIX), but in this standard all such
+entries are considered to form part of the directory contents.
+Entries in sub-directories are not, however, considered to form part
+of the directory contents.
+
+Each file system object is referenced by a {\em path}. There is
+normally at least one absolute path to each file system object. In
+some operating systems, it may also be possible to have paths which
+are relative to the current directory.
+
+\begin{code}
+module LibDirectory where
+
+import PreludeIOError
+import PreludeGlaST
+import PS
+
+createDirectory :: FilePath -> IO ()
+createDirectory path =
+ _ccall_ createDirectory path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$createDirectory dir$ creates a new directory
+{\em dir} which is initially empty, or as near to empty as the
+operating system allows.
+
+The operation may fail with:
+\begin{itemize}
+\item $AlreadyExists$
+The operand refers to a directory that already exists.
+[$EEXIST$]
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+There is no path to the directory.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$]
+\item $ResourceExhausted$
+Insufficient resources (virtual memory, process file descriptors,
+physical disk space, etc.) are available to perform the operation.
+[$EDQUOT$, $ENOSPC$, $ENOMEM$,
+$EMLINK$]
+\item $InappropriateType$
+The path refers to an existing non-directory object.
+[$EEXIST$]
+\end{itemize}
+
+
+\begin{code}
+removeDirectory :: FilePath -> IO ()
+removeDirectory path =
+ _ccall_ removeDirectory path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$removeDirectory dir$ removes an existing directory {\em dir}. The
+implementation may specify additional constraints which must be
+satisfied before a directory can be removed (e.g. the directory has to
+be empty, or may not be in use by other processes). It is not legal
+for an implementation to partially remove a directory unless the
+entire directory is removed. A conformant implementation need not
+support directory removal in all situations (e.g. removal of the root
+directory).
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The directory does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$, $ENOTEMPTY$, $EEXIST$]
+\item $UnsupportedOperation$
+The implementation does not support removal in this situation.
+[$EINVAL$]
+\item $InappropriateType$
+The operand refers to an existing non-directory object.
+[$ENOTDIR$]
+\end{itemize}
+
+
+\begin{code}
+removeFile :: FilePath -> IO ()
+removeFile path =
+ _ccall_ removeFile path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+$removeFile file$ removes the directory entry for an existing file
+{\em file}, where {\em file} is not itself a directory. The
+implementation may specify additional constraints which must be
+satisfied before a file can be removed (e.g. the file may not be in
+use by other processes).
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid file name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The file does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$]
+\item $InappropriateType$
+The operand refers to an existing directory.
+[$EPERM$, $EINVAL$]
+\end{itemize}
+
+
+\begin{code}
+renameDirectory :: FilePath -> FilePath -> IO ()
+renameDirectory opath npath =
+ _ccall_ renameDirectory opath npath `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$renameDirectory old$ {\em new} changes the name of an existing
+directory from {\em old} to {\em new}. If the {\em new} directory
+already exists, it is atomically replaced by the {\em old} directory.
+If the {\em new} directory is neither the {\em old} directory nor an
+alias of the {\em old} directory, it is removed as if by
+$removeDirectory$. A conformant implementation need not support
+renaming directories in all situations (e.g. renaming to an existing
+directory, or across different physical devices), but the constraints
+must be documented.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+Either operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The original directory does not exist, or there is no path to the target.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+[$EDQUOT$, $ENOSPC$, $ENOMEM$,
+$EMLINK$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$, $ENOTEMPTY$, $EEXIST$]
+\item $UnsupportedOperation$
+The implementation does not support renaming in this situation.
+[$EINVAL$, $EXDEV$]
+\item $InappropriateType$
+Either path refers to an existing non-directory object.
+[$ENOTDIR$, $EISDIR$]
+\end{itemize}
+
+
+\begin{code}
+renameFile :: FilePath -> FilePath -> IO ()
+renameFile opath npath =
+ _ccall_ renameFile opath npath `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$renameFile old$ {\em new} changes the name of an existing file system
+object from {\em old} to {\em new}. If the {\em new} object already
+exists, it is atomically replaced by the {\em old} object. Neither
+path may refer to an existing directory. A conformant implementation
+need not support renaming files in all situations (e.g. renaming
+across different physical devices), but the constraints must be
+documented.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+Either operand is not a valid file name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The original file does not exist, or there is no path to the target.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+[$EDQUOT$, $ENOSPC$, $ENOMEM$,
+$EMLINK$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$]
+\item $UnsupportedOperation$
+The implementation does not support renaming in this situation.
+[$EXDEV$]
+\item $InappropriateType$
+Either path refers to an existing directory.
+[$ENOTDIR$, $EISDIR$, $EINVAL$,
+$EEXIST$, $ENOTEMPTY$]
+\end{itemize}
+
+
+\begin{code}
+getDirectoryContents :: FilePath -> IO [FilePath]
+getDirectoryContents path =
+ _ccall_ getDirectoryContents path `thenPrimIO` \ ptr ->
+ getEntries ptr 0 `thenPrimIO` \ entries ->
+ _ccall_ free ptr `thenPrimIO` \ () ->
+ return entries
+ where
+ getEntries :: _Addr -> Int -> PrimIO [FilePath]
+ getEntries ptr n =
+ _casm_ ``%r = ((char **)%0)[%1];'' ptr n `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ returnPrimIO []
+ else
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ entry ->
+ _ccall_ free str `thenPrimIO` \ () ->
+ getEntries ptr (n+1) `thenPrimIO` \ entries ->
+ returnPrimIO (_unpackPS entry : entries)
+
+\end{code}
+
+$getDirectoryContents dir$ returns a list of
+<i>all</i> entries in {\em dir}.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The directory does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EACCES$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+[$EMFILE$, $ENFILE$]
+\item $InappropriateType$
+The path refers to an existing non-directory object.
+[$ENOTDIR$]
+\end{itemize}
+
+
+\begin{code}
+getCurrentDirectory :: IO FilePath
+getCurrentDirectory =
+ _ccall_ getCurrentDirectory `thenPrimIO` \ str ->
+ if str /= ``NULL'' then
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ pwd ->
+ _ccall_ free str `thenPrimIO` \ () ->
+ return (_unpackPS pwd)
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+If the operating system has a notion of current directories,
+$getCurrentDirectory$ returns an absolute path to the
+current directory of the calling process.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $NoSuchThing$
+There is no path referring to the current directory.
+[$EPERM$, $ENOENT$, $ESTALE$...]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EACCES$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+\item $UnsupportedOperation$
+The operating system has no notion of current directory.
+\end{itemize}
+
+
+\begin{code}
+setCurrentDirectory :: FilePath -> IO ()
+setCurrentDirectory path =
+ _ccall_ setCurrentDirectory path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+If the operating system has a notion of current directories,
+$setCurrentDirectory dir$ changes the current
+directory of the calling process to {\em dir}.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The directory does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EACCES$]
+\item $UnsupportedOperation$
+The operating system has no notion of current directory, or the
+current directory cannot be dynamically changed.
+\item $InappropriateType$
+The path refers to an existing non-directory object.
+[$ENOTDIR$]
+\end{itemize}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mc.hi b/ghc/lib/haskell-1.3/LibDirectory_mc.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mc.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mg.hi b/ghc/lib/haskell-1.3/LibDirectory_mg.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mg.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mp.hi b/ghc/lib/haskell-1.3/LibDirectory_mp.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mp.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mr.hi b/ghc/lib/haskell-1.3/LibDirectory_mr.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mr.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mt.hi b/ghc/lib/haskell-1.3/LibDirectory_mt.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mt.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_p.hi b/ghc/lib/haskell-1.3/LibDirectory_p.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_p.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_t.hi b/ghc/lib/haskell-1.3/LibDirectory_t.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_t.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix.hi b/ghc/lib/haskell-1.3/LibPosix.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix.lhs b/ghc/lib/haskell-1.3/LibPosix.lhs
new file mode 100644
index 0000000000..e97215efb4
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix.lhs
@@ -0,0 +1,101 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosix]{Haskell 1.3 POSIX bindings}
+
+\begin{code}
+module LibPosix (
+ LibPosixDB..,
+ LibPosixErr..,
+ LibPosixFiles..,
+ LibPosixIO..,
+ LibPosixProcEnv..,
+ LibPosixProcPrim..,
+ LibPosixTTY..,
+
+ runProcess,
+
+ ByteCount(..),
+ Channel(..),
+ ClockTick(..),
+ EpochTime(..),
+ FileOffset(..),
+ GroupID(..),
+ Limit(..),
+ LinkCount(..),
+ ProcessID(..),
+ ProcessGroupID(..),
+ UserID(..),
+
+ ExitCode
+ ) where
+
+
+import LibPosixDB
+import LibPosixErr
+import LibPosixFiles
+import LibPosixIO
+import LibPosixProcEnv
+import LibPosixProcPrim
+import LibPosixTTY
+import LibPosixUtil
+
+-- runProcess is our candidate for the high-level OS-independent primitive
+-- If accepted, it will be moved out of LibPosix into LibSystem.
+
+import LibDirectory ( setCurrentDirectory )
+
+import PreludeGlaST
+import PreludePrimIO ( takeMVar, putMVar, _MVar )
+import PreludeStdIO
+
+runProcess :: FilePath -- Command
+ -> [String] -- Arguments
+ -> Maybe [(String, String)] -- Environment
+ -> Maybe FilePath -- Working directory
+ -> Maybe Handle -- stdin
+ -> Maybe Handle -- stdout
+ -> Maybe Handle -- stderr
+ -> IO ()
+runProcess path args env dir stdin stdout stderr =
+ forkProcess >>= \ pid ->
+ case pid of
+ Nothing -> doTheBusiness
+ Just x -> return ()
+ where
+ doTheBusiness :: IO ()
+ doTheBusiness =
+ maybeChangeWorkingDirectory >>
+ maybeDup2 0 stdin >>
+ maybeDup2 1 stdout >>
+ maybeDup2 2 stderr >>
+ executeFile path True args env >>
+ syserr "runProcess"
+
+ maybeChangeWorkingDirectory :: IO ()
+ maybeChangeWorkingDirectory =
+ case dir of
+ Nothing -> return ()
+ Just x -> setCurrentDirectory x
+
+ maybeDup2 :: Int -> Maybe Handle -> IO ()
+ maybeDup2 dest h =
+ case h of Nothing -> return ()
+ Just x -> handleFD x >>= \ src ->
+ dupChannelTo src dest >>
+ return ()
+
+ handleFD :: Handle -> IO Channel
+ handleFD handle =
+ takeMVar handle >>= \ htype ->
+ putMVar handle htype >>
+ case htype of
+ _ErrorHandle ioError -> failWith ioError
+ _ClosedHandle -> failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ -> failWith (IllegalOperation "handle is closed")
+ other ->
+ _casm_ ``%r = fileno((FILE *)%0);'' (_filePtr other)
+ `thenPrimIO` \ fd ->
+ return fd
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixDB.hi b/ghc/lib/haskell-1.3/LibPosixDB.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB.lhs b/ghc/lib/haskell-1.3/LibPosixDB.lhs
new file mode 100644
index 0000000000..e6d483ce9d
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB.lhs
@@ -0,0 +1,135 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixDB]{Haskell 1.3 POSIX System Databases}
+
+\begin{code}
+module LibPosixDB (
+ GroupEntry,
+ UserEntry,
+
+ getGroupEntryForID,
+ getGroupEntryForName,
+ getUserEntryForID,
+ getUserEntryForName,
+ groupID,
+ groupMembers,
+ groupName,
+ homeDirectory,
+ userGroupID,
+ userID,
+ userName,
+ userShell
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixUtil
+
+data GroupEntry = GE String GroupID [String]
+
+groupName :: GroupEntry -> String
+groupName (GE name _ _) = name
+
+groupID :: GroupEntry -> GroupID
+groupID (GE _ gid _) = gid
+
+groupMembers :: GroupEntry -> [String]
+groupMembers (GE _ _ members) = members
+
+getGroupEntryForID :: GroupID -> IO GroupEntry
+getGroupEntryForID gid =
+ _ccall_ getgrgid gid `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such group entry")
+ else
+ unpackGroupEntry ptr `thenPrimIO` \ group ->
+ return group
+
+getGroupEntryForName :: String -> IO GroupEntry
+getGroupEntryForName name =
+ _packBytesForCST name `thenStrictlyST` \ gname ->
+ _ccall_ getgrnam gname `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such group entry")
+ else
+ unpackGroupEntry ptr `thenPrimIO` \ group ->
+ return group
+
+data UserEntry = UE String UserID GroupID String String
+
+userName :: UserEntry -> String
+userName (UE name _ _ _ _) = name
+
+userID :: UserEntry -> UserID
+userID (UE _ uid _ _ _) = uid
+
+userGroupID :: UserEntry -> GroupID
+userGroupID (UE _ _ gid _ _) = gid
+
+homeDirectory :: UserEntry -> String
+homeDirectory (UE _ _ _ home _) = home
+
+userShell :: UserEntry -> String
+userShell (UE _ _ _ _ shell) = shell
+
+getUserEntryForID :: UserID -> IO UserEntry
+getUserEntryForID uid =
+ _ccall_ getpwuid uid `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such user entry")
+ else
+ unpackUserEntry ptr `thenPrimIO` \ user ->
+ return user
+
+getUserEntryForName :: String -> IO UserEntry
+getUserEntryForName name =
+ _packBytesForCST name `thenStrictlyST` \ uname ->
+ _ccall_ getpwnam uname `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such user entry")
+ else
+ unpackUserEntry ptr `thenPrimIO` \ user ->
+ return user
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Copy the static structure returned by getgr* into a Haskell structure
+
+unpackGroupEntry :: _Addr -> PrimIO GroupEntry
+unpackGroupEntry ptr =
+ _casm_ ``%r = ((struct group *)%0)->gr_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct group *)%0)->gr_gid;'' ptr
+ `thenPrimIO` \ gid ->
+ _casm_ ``%r = ((struct group *)%0)->gr_mem;'' ptr
+ `thenPrimIO` \ mem ->
+ unvectorize mem 0 `thenStrictlyST` \ members ->
+ returnPrimIO (GE name gid members)
+
+-- Copy the static structure returned by getpw* into a Haskell structure
+
+unpackUserEntry :: _Addr -> PrimIO UserEntry
+unpackUserEntry ptr =
+ _casm_ ``%r = ((struct passwd *)%0)->pw_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_uid;'' ptr
+ `thenPrimIO` \ uid ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_gid;'' ptr
+ `thenPrimIO` \ gid ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_dir;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ home ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_shell;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ shell ->
+ returnPrimIO (UE name uid gid home shell)
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mc.hi b/ghc/lib/haskell-1.3/LibPosixDB_mc.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mc.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mg.hi b/ghc/lib/haskell-1.3/LibPosixDB_mg.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mg.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mp.hi b/ghc/lib/haskell-1.3/LibPosixDB_mp.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mp.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mr.hi b/ghc/lib/haskell-1.3/LibPosixDB_mr.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mr.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mt.hi b/ghc/lib/haskell-1.3/LibPosixDB_mt.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mt.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_p.hi b/ghc/lib/haskell-1.3/LibPosixDB_p.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_p.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_t.hi b/ghc/lib/haskell-1.3/LibPosixDB_t.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_t.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr.hi b/ghc/lib/haskell-1.3/LibPosixErr.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr.lhs b/ghc/lib/haskell-1.3/LibPosixErr.lhs
new file mode 100644
index 0000000000..bcc7137b44
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr.lhs
@@ -0,0 +1,164 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixErr]{Haskell 1.3 POSIX Error Codes}
+
+\begin{code}
+module LibPosixErr
+where
+
+import PreludeGlaST
+
+type ErrorCode = Int
+
+getErrorCode :: IO ErrorCode
+getErrorCode =
+ _casm_ ``%r = errno;'' `thenPrimIO` \ errno ->
+ return errno
+
+setErrorCode :: ErrorCode -> IO ()
+setErrorCode errno =
+ _casm_ ``errno = %0;'' errno `thenPrimIO` \ () ->
+ return ()
+
+noError :: ErrorCode
+noError = 0
+
+argumentListTooLong, e2BIG :: ErrorCode
+argumentListTooLong = ``E2BIG''
+e2BIG = ``E2BIG''
+
+badChannel, eBADF :: ErrorCode
+badChannel = ``EBADF''
+eBADF = ``EBADF''
+
+brokenPipe, ePIPE :: ErrorCode
+brokenPipe = ``EPIPE''
+ePIPE = ``EPIPE''
+
+directoryNotEmpty, eNOTEMPTY :: ErrorCode
+directoryNotEmpty = ``ENOTEMPTY''
+eNOTEMPTY = ``ENOTEMPTY''
+
+execFormatError, eNOEXEC :: ErrorCode
+execFormatError = ``ENOEXEC''
+eNOEXEC = ``ENOEXEC''
+
+fileAlreadyExists, eEXIST :: ErrorCode
+fileAlreadyExists = ``EEXIST''
+eEXIST = ``EEXIST''
+
+fileTooLarge, eFBIG :: ErrorCode
+fileTooLarge = ``EFBIG''
+eFBIG = ``EFBIG''
+
+filenameTooLong, eNAMETOOLONG :: ErrorCode
+filenameTooLong = ``ENAMETOOLONG''
+eNAMETOOLONG = ``ENAMETOOLONG''
+
+improperLink, eXDEV :: ErrorCode
+improperLink = ``EXDEV''
+eXDEV = ``EXDEV''
+
+inappropriateIOControlOperation, eNOTTY :: ErrorCode
+inappropriateIOControlOperation = ``ENOTTY''
+eNOTTY = ``ENOTTY''
+
+inputOutputError, eIO :: ErrorCode
+inputOutputError = ``EIO''
+eIO = ``EIO''
+
+interruptedOperation, eINTR :: ErrorCode
+interruptedOperation = ``EINTR''
+eINTR = ``EINTR''
+
+invalidArgument, eINVAL :: ErrorCode
+invalidArgument = ``EINVAL''
+eINVAL = ``EINVAL''
+
+invalidSeek, eSPIPE :: ErrorCode
+invalidSeek = ``ESPIPE''
+eSPIPE = ``ESPIPE''
+
+isADirectory, eISDIR :: ErrorCode
+isADirectory = ``EISDIR''
+eISDIR = ``EISDIR''
+
+noChildProcess, eCHILD :: ErrorCode
+noChildProcess = ``ECHILD''
+eCHILD = ``ECHILD''
+
+noLocksAvailable, eNOLCK :: ErrorCode
+noLocksAvailable = ``ENOLCK''
+eNOLCK = ``ENOLCK''
+
+noSpaceLeftOnDevice, eNOSPC :: ErrorCode
+noSpaceLeftOnDevice = ``ENOSPC''
+eNOSPC = ``ENOSPC''
+
+noSuchOperationOnDevice, eNODEV :: ErrorCode
+noSuchOperationOnDevice = ``ENODEV''
+eNODEV = ``ENODEV''
+
+noSuchDeviceOrAddress, eNXIO :: ErrorCode
+noSuchDeviceOrAddress = ``ENXIO''
+eNXIO = ``ENXIO''
+
+noSuchFileOrDirectory, eNOENT :: ErrorCode
+noSuchFileOrDirectory = ``ENOENT''
+eNOENT = ``ENOENT''
+
+noSuchProcess, eSRCH :: ErrorCode
+noSuchProcess = ``ESRCH''
+eSRCH = ``ESRCH''
+
+notADirectory, eNOTDIR :: ErrorCode
+notADirectory = ``ENOTDIR''
+eNOTDIR = ``ENOTDIR''
+
+notEnoughMemory, eNOMEM :: ErrorCode
+notEnoughMemory = ``ENOMEM''
+eNOMEM = ``ENOMEM''
+
+operationNotImplemented, eNOSYS :: ErrorCode
+operationNotImplemented = ``ENOSYS''
+eNOSYS = ``ENOSYS''
+
+operationNotPermitted, ePERM :: ErrorCode
+operationNotPermitted = ``EPERM''
+ePERM = ``EPERM''
+
+permissionDenied, eACCES :: ErrorCode
+permissionDenied = ``EACCES''
+eACCES = ``EACCES''
+
+readOnlyFileSystem, eROFS :: ErrorCode
+readOnlyFileSystem = ``EROFS''
+eROFS = ``EROFS''
+
+resourceBusy, eBUSY :: ErrorCode
+resourceBusy = ``EBUSY''
+eBUSY = ``EBUSY''
+
+resourceDeadlockAvoided, eDEADLK :: ErrorCode
+resourceDeadlockAvoided = ``EDEADLK''
+eDEADLK = ``EDEADLK''
+
+resourceTemporarilyUnavailable, eAGAIN :: ErrorCode
+resourceTemporarilyUnavailable = ``EAGAIN''
+eAGAIN = ``EAGAIN''
+
+tooManyLinks, eMLINK :: ErrorCode
+tooManyLinks = ``EMLINK''
+eMLINK = ``EMLINK''
+
+tooManyOpenFiles, eMFILE :: ErrorCode
+tooManyOpenFiles = ``EMFILE''
+eMFILE = ``EMFILE''
+
+tooManyOpenFilesInSystem, eNFILE :: ErrorCode
+tooManyOpenFilesInSystem = ``ENFILE''
+eNFILE = ``ENFILE''
+
+\end{code}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mc.hi b/ghc/lib/haskell-1.3/LibPosixErr_mc.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mc.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mg.hi b/ghc/lib/haskell-1.3/LibPosixErr_mg.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mg.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mp.hi b/ghc/lib/haskell-1.3/LibPosixErr_mp.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mp.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mr.hi b/ghc/lib/haskell-1.3/LibPosixErr_mr.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mr.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mt.hi b/ghc/lib/haskell-1.3/LibPosixErr_mt.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mt.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_p.hi b/ghc/lib/haskell-1.3/LibPosixErr_p.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_p.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_t.hi b/ghc/lib/haskell-1.3/LibPosixErr_t.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_t.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles.hi b/ghc/lib/haskell-1.3/LibPosixFiles.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles.lhs b/ghc/lib/haskell-1.3/LibPosixFiles.lhs
new file mode 100644
index 0000000000..f2caeb4069
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles.lhs
@@ -0,0 +1,559 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixFiles]{Haskell 1.3 POSIX File and Directory Operations}
+
+\begin{code}
+module LibPosixFiles (
+ DeviceID(..),
+ DirStream(..),
+ FileID(..),
+ FileMode(..),
+ FileStatus(..),
+ OpenMode(..),
+ PathVar(..),
+
+ accessModes,
+ accessTime,
+ changeWorkingDirectory, -- Too much like LibDirectory thing?
+ closeDirStream,
+ createDirectory, -- Too much like LibDirectory thing?
+ createFile,
+ createLink,
+ createNamedPipe,
+ deviceID,
+ fileGroup,
+ fileID,
+ fileMode,
+ fileOwner,
+ fileSize,
+ getChannelStatus,
+ getChannelVar,
+ getFileStatus,
+ getPathVar,
+ getWorkingDirectory, -- Too much like LibDirectory thing?
+ groupExecuteMode,
+ groupModes,
+ groupReadMode,
+ groupWriteMode,
+ intersectFileModes,
+ isBlockDevice,
+ isCharacterDevice,
+ isDirectory,
+ isNamedPipe,
+ isRegularFile,
+ linkCount,
+ modificationTime,
+ nullFileMode,
+ openDirStream,
+ openChannel,
+ otherExecuteMode,
+ otherModes,
+ otherReadMode,
+ otherWriteMode,
+ ownerExecuteMode,
+ ownerModes,
+ ownerReadMode,
+ ownerWriteMode,
+ queryAccess,
+ queryFile,
+ readDirStream,
+ removeDirectory, -- Too much like LibDirectory thing
+ removeLink,
+ rename,
+ rewindDirStream,
+ setFileCreationMask,
+ setFileTimes,
+ setGroupIDMode,
+ setOwnerAndGroup,
+ setFileMode,
+ setUserIDMode,
+ stdError,
+ stdFileMode,
+ stdInput,
+ stdOutput,
+ statusChangeTime,
+ touchFile,
+ unionFileModes
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixErr
+import LibPosixUtil
+
+import LibDirectory ( removeDirectory, -- re-use its code
+ getCurrentDirectory,
+ setCurrentDirectory
+ )
+
+type DirStream = _Addr
+
+openDirStream :: FilePath -> IO DirStream
+openDirStream name =
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ opendir dir `thenPrimIO` \ dirp ->
+ if dirp /= ``NULL'' then
+ return dirp
+ else
+ syserr "openDirStream"
+
+readDirStream :: DirStream -> IO String
+readDirStream dirp =
+ setErrorCode noError >>
+ _ccall_ readdir dirp `thenPrimIO` \ dirent ->
+ if dirent /= (``NULL''::_Addr) then
+ _casm_ ``%r = ((struct dirent *)%0)->d_name;'' dirent
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ return name
+ else
+ getErrorCode >>= \ errno ->
+ if errno == noError then
+ failWith EOF
+ else
+ syserr "readDirStream"
+
+rewindDirStream :: DirStream -> IO ()
+rewindDirStream dirp =
+ _ccall_ rewinddir dirp `thenPrimIO` \ () ->
+ return ()
+
+closeDirStream :: DirStream -> IO ()
+closeDirStream dirp =
+ _ccall_ closedir dirp `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "closeDirStream"
+
+getWorkingDirectory :: IO FilePath
+getWorkingDirectory = getCurrentDirectory{-LibDirectory-}
+{- OLD:
+ _ccall_ getCurrentDirectory `thenPrimIO` \ str ->
+ if str /= ``NULL'' then
+ strcpy str `thenPrimIO` \ pwd ->
+ _ccall_ free str `thenPrimIO` \ () ->
+ return pwd
+ else
+ syserr "getWorkingDirectory"
+-}
+
+changeWorkingDirectory :: FilePath -> IO ()
+changeWorkingDirectory name = setCurrentDirectory{-LibDirectory-} name
+{- OLD:
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ chdir dir `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "changeWorkingDirectory"
+-}
+
+type FileMode = _Word
+
+nullFileMode :: FileMode
+nullFileMode = ``0''
+
+ownerReadMode :: FileMode
+ownerReadMode = ``S_IRUSR''
+
+ownerWriteMode :: FileMode
+ownerWriteMode = ``S_IWUSR''
+
+ownerExecuteMode :: FileMode
+ownerExecuteMode = ``S_IXUSR''
+
+groupReadMode :: FileMode
+groupReadMode = ``S_IRGRP''
+
+groupWriteMode :: FileMode
+groupWriteMode = ``S_IWGRP''
+
+groupExecuteMode :: FileMode
+groupExecuteMode = ``S_IXGRP''
+
+otherReadMode :: FileMode
+otherReadMode = ``S_IROTH''
+
+otherWriteMode :: FileMode
+otherWriteMode = ``S_IWOTH''
+
+otherExecuteMode :: FileMode
+otherExecuteMode = ``S_IXOTH''
+
+setUserIDMode :: FileMode
+setUserIDMode = ``S_ISUID''
+
+setGroupIDMode :: FileMode
+setGroupIDMode = ``S_ISGID''
+
+stdFileMode :: FileMode
+stdFileMode = ``(S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)''
+
+ownerModes :: FileMode
+ownerModes = ``S_IRWXU''
+
+groupModes :: FileMode
+groupModes = ``S_IRWXG''
+
+otherModes :: FileMode
+otherModes = ``S_IRWXO''
+
+accessModes :: FileMode
+accessModes = ``(S_IRWXU|S_IRWXG|S_IRWXO)''
+
+unionFileModes :: FileMode -> FileMode -> FileMode
+unionFileModes (W# m1#) (W# m2#) = W# (m1# `or#` m2#)
+
+intersectFileModes :: FileMode -> FileMode -> FileMode
+intersectFileModes (W# m1#) (W# m2#) = W# (m1# `and#` m2#)
+
+stdInput :: Channel
+stdInput = 0
+
+stdOutput :: Channel
+stdOutput = 1
+
+stdError :: Channel
+stdError = 2
+
+data OpenMode = ReadOnly
+ | WriteOnly
+ | ReadWrite
+
+openChannel :: FilePath
+ -> OpenMode
+ -> Maybe FileMode -- Just x => O_CREAT, Nothing => must exist
+ -> Bool -- O_APPEND
+ -> Bool -- O_EXCL
+ -> Bool -- O_NOCTTY
+ -> Bool -- O_NONBLOCK
+ -> Bool -- O_TRUNC
+ -> IO Channel
+openChannel name how maybe_mode append excl noctty nonblock trunc =
+ _packBytesForCST name `thenStrictlyST` \ file ->
+ _ccall_ open file flags mode `thenPrimIO` \ fd ->
+ if fd /= -1 then
+ return fd
+ else
+ syserr "openChannel"
+ where
+ mode, creat :: FileMode
+ mode = case maybe_mode of { Nothing -> ``0'' ; Just x -> x }
+
+ creat = case maybe_mode of { Nothing -> ``0'' ; Just _ -> ``O_CREAT'' }
+ creat# = case creat of { W# x -> x }
+
+ flags = W# (creat# `or#` append# `or#` excl# `or#`
+ noctty# `or#` nonblock# `or#` trunc#)
+ append# = case (if append then ``O_APPEND'' else ``0'') of { W# x -> x }
+ excl# = case (if excl then ``O_EXCL'' else ``0'') of { W# x -> x }
+ noctty# = case (if noctty then ``O_NOCTTY'' else ``0'') of { W# x -> x }
+ nonblock# = case (if nonblock then ``O_NONBLOCK'' else ``0'') of { W# x -> x }
+ trunc# = case (if trunc then ``O_TRUNC'' else ``0'') of { W# x -> x }
+
+createFile :: FilePath -> FileMode -> IO Channel
+createFile name mode =
+ _packBytesForCST name `thenStrictlyST` \ file ->
+ _ccall_ creat file mode `thenPrimIO` \ fd ->
+ if fd /= -1 then
+ return fd
+ else
+ syserr "createFile"
+
+setFileCreationMask :: FileMode -> IO FileMode
+setFileCreationMask mask =
+ _ccall_ umask mask `thenPrimIO` \ omask ->
+ return omask
+
+createLink :: FilePath -> FilePath -> IO ()
+createLink name1 name2 =
+ _packBytesForCST name1 `thenStrictlyST` \ path1 ->
+ _packBytesForCST name2 `thenStrictlyST` \ path2 ->
+ _ccall_ link path1 path2 `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "createLink"
+
+createDirectory :: FilePath -> FileMode -> IO ()
+createDirectory name mode = -- NB: diff signature from LibDirectory one!
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ mkdir dir mode `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "createDirectory"
+
+createNamedPipe :: FilePath -> FileMode -> IO ()
+createNamedPipe name mode =
+ _packBytesForCST name `thenStrictlyST` \ pipe ->
+ _ccall_ mkfifo pipe mode `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "createNamedPipe"
+
+removeLink :: FilePath -> IO ()
+removeLink name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ unlink path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "removeLink"
+
+{- USE LibDirectory ONE:
+removeDirectory :: FilePath -> IO ()
+removeDirectory name =
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ rmdir dir `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "removeDirectory"
+-}
+
+rename :: FilePath -> FilePath -> IO ()
+rename name1 name2 =
+ _packBytesForCST name1 `thenStrictlyST` \ path1 ->
+ _packBytesForCST name2 `thenStrictlyST` \ path2 ->
+ _ccall_ rename path1 path2 `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "rename"
+
+type FileStatus = _ByteArray ()
+type FileID = Int
+type DeviceID = Int
+
+fileMode :: FileStatus -> FileMode
+fileMode stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_mode;'' stat
+ `thenStrictlyST` \ mode ->
+ returnPrimIO mode)
+
+fileID :: FileStatus -> FileID
+fileID stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_ino;'' stat
+ `thenStrictlyST` \ ino ->
+ returnPrimIO ino)
+
+deviceID :: FileStatus -> DeviceID
+deviceID stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_dev;'' stat
+ `thenStrictlyST` \ dev ->
+ returnPrimIO dev)
+
+linkCount :: FileStatus -> LinkCount
+linkCount stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_nlink;'' stat
+ `thenStrictlyST` \ nlink ->
+ returnPrimIO nlink)
+
+fileOwner :: FileStatus -> UserID
+fileOwner stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_uid;'' stat
+ `thenStrictlyST` \ uid ->
+ returnPrimIO uid)
+
+fileGroup :: FileStatus -> GroupID
+fileGroup stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_gid;'' stat
+ `thenStrictlyST` \ gid ->
+ returnPrimIO gid)
+
+fileSize :: FileStatus -> FileOffset
+fileSize stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_size;'' stat
+ `thenStrictlyST` \ size ->
+ returnPrimIO size)
+
+accessTime :: FileStatus -> EpochTime
+accessTime stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_atime;'' stat
+ `thenStrictlyST` \ atime ->
+ returnPrimIO atime)
+
+modificationTime :: FileStatus -> EpochTime
+modificationTime stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_mtime;'' stat
+ `thenStrictlyST` \ mtime ->
+ returnPrimIO mtime)
+
+statusChangeTime :: FileStatus -> EpochTime
+statusChangeTime stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_ctime;'' stat
+ `thenStrictlyST` \ ctime ->
+ returnPrimIO ctime)
+
+isDirectory :: FileStatus -> Bool
+isDirectory stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISDIR(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isCharacterDevice :: FileStatus -> Bool
+isCharacterDevice stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISCHR(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isBlockDevice :: FileStatus -> Bool
+isBlockDevice stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISBLK(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isRegularFile :: FileStatus -> Bool
+isRegularFile stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISREG(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isNamedPipe :: FileStatus -> Bool
+isNamedPipe stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISFIFO(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+getFileStatus :: FilePath -> IO FileStatus
+getFileStatus name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ allocChars ``sizeof(struct stat)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = stat(%0,(struct stat *)%1);'' path bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ stat ->
+ return stat
+ else
+ syserr "getFileStatus"
+
+getChannelStatus :: Channel -> IO FileStatus
+getChannelStatus fd =
+ allocChars ``sizeof(struct stat)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = fstat(%0,(struct stat *)%1);'' fd bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ stat ->
+ return stat
+ else
+ syserr "getChannelStatus"
+
+queryAccess :: FilePath -> Bool -> Bool -> Bool -> IO Bool
+queryAccess name read write exec =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ access path flags `thenPrimIO` \ rc ->
+ return (rc == 0)
+ where
+ flags = I# (word2Int# (read# `or#` write# `or#` exec#))
+ read# = case (if read then ``R_OK'' else ``0'') of { W# x -> x }
+ write# = case (if write then ``W_OK'' else ``0'') of { W# x -> x }
+ exec# = case (if exec then ``X_OK'' else ``0'') of { W# x -> x }
+
+queryFile :: FilePath -> IO Bool
+queryFile name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ access path (``F_OK''::Int) `thenPrimIO` \ rc ->
+ return (rc == 0)
+
+setFileMode :: FilePath -> FileMode -> IO ()
+setFileMode name mode =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ chmod path mode `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setFileMode"
+
+setOwnerAndGroup :: FilePath -> UserID -> GroupID -> IO ()
+setOwnerAndGroup name uid gid =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ chown path uid gid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setOwnerAndGroup"
+
+setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
+setFileTimes name atime mtime =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _casm_ ``do {struct utimbuf ub; ub.actime = (time_t) %0; ub.modtime = (time_t) %1;
+ %r = utime(%2, &ub);} while(0);'' atime mtime path
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setFileTimes"
+
+touchFile :: FilePath -> IO ()
+touchFile name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ utime path (``NULL''::_Addr) `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "touchFile"
+
+data PathVar = LinkLimit
+ | InputLineLimit
+ | InputQueueLimit
+ | FileNameLimit
+ | PathNameLimit
+ | PipeBufferLimit
+ | SetOwnerAndGroupIsRestricted
+ | FileNamesAreNotTruncated
+
+getPathVar :: PathVar -> FilePath -> IO Limit
+getPathVar v name =
+ case v of
+ LinkLimit -> pathconf ``_PC_LINK_MAX''
+ InputLineLimit -> pathconf ``_PC_MAX_CANON''
+ InputQueueLimit -> pathconf ``_PC_MAX_INPUT''
+ FileNameLimit -> pathconf ``_PC_NAME_MAX''
+ PathNameLimit -> pathconf ``_PC_PATH_MAX''
+ PipeBufferLimit -> pathconf ``_PC_PIPE_BUF''
+ SetOwnerAndGroupIsRestricted -> pathconf ``_PC_CHOWN_RESTRICTED''
+ FileNamesAreNotTruncated -> pathconf ``_PC_NO_TRUNC''
+ where
+ pathconf :: Int -> IO Limit
+ pathconf n =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ pathconf path n `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ getErrorCode >>= \ errno ->
+ if errno == invalidArgument then
+ failWith (NoSuchThing "no such path limit or option")
+ else
+ syserr "getPathVar"
+
+getChannelVar :: PathVar -> Channel -> IO Limit
+getChannelVar v fd =
+ case v of
+ LinkLimit -> fpathconf ``_PC_LINK_MAX''
+ InputLineLimit -> fpathconf ``_PC_MAX_CANON''
+ InputQueueLimit -> fpathconf ``_PC_MAX_INPUT''
+ FileNameLimit -> fpathconf ``_PC_NAME_MAX''
+ PathNameLimit -> fpathconf ``_PC_PATH_MAX''
+ PipeBufferLimit -> fpathconf ``_PC_PIPE_BUF''
+ SetOwnerAndGroupIsRestricted -> fpathconf ``_PC_CHOWN_RESTRICTED''
+ FileNamesAreNotTruncated -> fpathconf ``_PC_NO_TRUNC''
+ where
+ fpathconf :: Int -> IO Limit
+ fpathconf n =
+ _ccall_ fpathconf fd n `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ getErrorCode >>= \ errno ->
+ if errno == invalidArgument then
+ failWith (NoSuchThing "no such path limit or option")
+ else
+ syserr "getPathVar"
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mc.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mc.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mc.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mg.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mg.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mg.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mp.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mp.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mp.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mr.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mr.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mr.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mt.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mt.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mt.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_p.hi b/ghc/lib/haskell-1.3/LibPosixFiles_p.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_p.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_t.hi b/ghc/lib/haskell-1.3/LibPosixFiles_t.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_t.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO.hi b/ghc/lib/haskell-1.3/LibPosixIO.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO.lhs b/ghc/lib/haskell-1.3/LibPosixIO.lhs
new file mode 100644
index 0000000000..c0b58c1117
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO.lhs
@@ -0,0 +1,258 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixIO]{Haskell 1.3 POSIX Input/Output Primitives}
+
+\begin{code}
+module LibPosixIO (
+ ChannelOption(..),
+ FileLock(..),
+ LockRequest(..),
+
+ closeChannel,
+ createPipe,
+ dupChannel,
+ dupChannelTo,
+ getLock,
+ queryChannelOption,
+ readChannel,
+ seekChannel,
+ setChannelOption,
+ setLock,
+ waitToSetLock,
+ writeChannel
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixUtil
+
+createPipe :: IO (Channel, Channel)
+createPipe =
+ allocChars ``(2*sizeof(int))'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = pipe((int *)%0);'' bytes `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ _casm_ ``%r = ((int *)%0)[0];'' bytes `thenPrimIO` \ wd ->
+ _casm_ ``%r = ((int *)%0)[1];'' bytes `thenPrimIO` \ rd ->
+ return (wd, rd)
+ else
+ syserr "createPipe"
+
+dupChannel :: Channel -> IO Channel
+dupChannel fd =
+ _ccall_ dup fd `thenPrimIO` \ fd2 ->
+ if fd2 /= -1 then
+ return fd2
+ else
+ syserr "dupChannel"
+
+dupChannelTo :: Channel -> Channel -> IO ()
+dupChannelTo fd1 fd2 =
+ _ccall_ dup2 fd1 fd2 `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "dupChannelTo"
+
+closeChannel :: Channel -> IO ()
+closeChannel fd =
+ _ccall_ close fd `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "closeChannel"
+
+readChannel :: Channel -> ByteCount -> IO (String, ByteCount)
+readChannel fd 0 = return ("", 0)
+readChannel fd nbytes =
+ allocChars nbytes `thenStrictlyST` \ bytes ->
+ _ccall_ read fd bytes nbytes `thenPrimIO` \ rc ->
+ case rc of
+ -1 -> syserr "readChannel"
+ 0 -> failWith EOF
+ n | n == nbytes ->
+ freeze bytes `thenStrictlyST` \ buf ->
+ return (_unpackPS (_unsafeByteArrayToPS buf n), n)
+ | otherwise ->
+ -- Let go of the excessively long ByteArray# by copying to a shorter one.
+ -- Maybe we need a new primitive, shrinkCharArray#?
+ allocChars n `thenPrimIO` \ bytes' ->
+ _casm_ ``do {I_ i; for(i = 0; i < %2; i++) ((B_)%0)[i] = ((B_)%1)[i];
+ } while(0);'' bytes' bytes n `thenPrimIO` \ () ->
+ freeze bytes' `thenStrictlyST` \ buf ->
+ return (_unpackPS (_unsafeByteArrayToPS buf n), n)
+
+writeChannel :: Channel -> String -> IO ByteCount
+writeChannel fd str =
+ _packBytesForCST str `thenPrimIO` \ buf ->
+ _ccall_ write fd buf (length str) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ syserr "writeChannel"
+
+data ChannelOption = AppendOnWrite
+ | CloseOnExec
+ | NonBlockingRead
+
+queryChannelOption :: ChannelOption -> Channel -> IO Bool
+queryChannelOption CloseOnExec fd =
+ _ccall_ fcntl fd (``F_GETFD''::Int) 0 `thenPrimIO` \ (I# flags#) ->
+ if flags# /=# -1# then
+ return ((int2Word# flags# `and#` fd_cloexec#) `neWord#` int2Word# 0#)
+ else
+ syserr "queryChannelOption"
+ where
+ fd_cloexec# = case (``FD_CLOEXEC'') of { W# x -> x }
+queryChannelOption other fd =
+ _ccall_ fcntl fd (``F_GETFL''::Int) 0 `thenPrimIO` \ (I# flags#) ->
+ if flags# >=# 0# then
+ return ((int2Word# flags# `and#` opt#) `neWord#` int2Word# 0#)
+ else
+ syserr "queryChannelOption"
+ where
+ opt# = case (
+ case other of
+ AppendOnWrite -> ``O_APPEND''
+ NonBlockingRead -> ``O_NONBLOCK'' ) of { W# x -> x }
+
+setChannelOption :: ChannelOption -> Bool -> Channel -> IO ()
+setChannelOption CloseOnExec val fd =
+ _ccall_ fcntl fd (``F_GETFD''::Int) 0 `thenPrimIO` \ flags ->
+ if flags /= -1 then
+ (if val then
+ _casm_ ``%r = fcntl(%0, F_SETFD, %1 | FD_CLOEXEC);'' fd flags
+ else
+ _casm_ ``%r = fcntl(%0, F_SETFD, %1 & ~FD_CLOEXEC);'' fd flags)
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ fail
+ else
+ fail
+ where
+ fail = syserr "setChannelOption"
+setChannelOption other val fd =
+ _ccall_ fcntl fd (``F_GETFL''::Int) 0 `thenPrimIO` \ flags ->
+ if flags >= 0 then
+ (if val then
+ _casm_ ``%r = fcntl(%0, F_SETFL, %1 | %2);'' fd flags opt
+ else
+ _casm_ ``%r = fcntl(%0, F_SETFL, %1 & ~(%2));'' fd flags opt)
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ fail
+ else
+ fail
+ where
+ fail = syserr "setChannelOption"
+ opt =
+ case other of
+ AppendOnWrite -> (``O_APPEND''::_Word)
+ NonBlockingRead -> (``O_NONBLOCK''::_Word)
+
+data LockRequest = ReadLock
+ | WriteLock
+ | Unlock
+
+type FileLock = (LockRequest, SeekMode, FileOffset, FileOffset)
+
+getLock :: Channel -> FileLock -> IO (Maybe (ProcessID, FileLock))
+getLock fd lock =
+ lock2Bytes lock >>= \ flock ->
+ _ccall_ fcntl fd (``F_GETLK''::Int) flock `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ bytes2ProcessIDAndLock flock `thenPrimIO` \ result ->
+ return (maybeResult result)
+ else
+ syserr "getLock"
+ where
+ maybeResult (_, (Unlock, _, _, _)) = Nothing
+ maybeResult x = Just x
+
+setLock :: Channel -> FileLock -> IO ()
+setLock fd lock =
+ lock2Bytes lock >>= \ flock ->
+ _ccall_ fcntl fd (``F_SETLK''::Int) flock `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "setLock"
+
+waitToSetLock :: Channel -> FileLock -> IO ()
+waitToSetLock fd lock =
+ lock2Bytes lock >>= \ flock ->
+ _ccall_ fcntl fd (``F_SETLKW''::Int) flock `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "waitToSetLock"
+
+seekChannel :: Channel -> SeekMode -> FileOffset -> IO FileOffset
+seekChannel fd mode offset =
+ _ccall_ lseek fd offset (mode2Int mode) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ syserr "seekChannel"
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Convert a Haskell SeekMode to an int
+
+mode2Int :: SeekMode -> Int
+mode2Int AbsoluteSeek = ``SEEK_SET''
+mode2Int RelativeSeek = ``SEEK_CUR''
+mode2Int SeekFromEnd = ``SEEK_END''
+
+-- Convert a Haskell FileLock to an flock structure
+
+lock2Bytes :: FileLock -> IO (_MutableByteArray _RealWorld ())
+lock2Bytes (kind, mode, start, len) =
+ allocChars ``sizeof(struct flock)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``do { struct flock *fl = (struct flock *)%0;
+ fl->l_type = %1; fl->l_whence = %2; fl->l_start = %3; fl->l_len = %4;
+ } while(0);'' bytes ltype (mode2Int mode) start len
+ `thenPrimIO` \ () ->
+ return bytes
+ where
+ ltype :: Int
+ ltype = case kind of
+ ReadLock -> ``F_RDLCK''
+ WriteLock -> ``F_WRLCK''
+ Unlock -> ``F_UNLCK''
+
+bytes2ProcessIDAndLock :: _MutableByteArray s () -> PrimIO (ProcessID, FileLock)
+bytes2ProcessIDAndLock bytes =
+ _casm_ ``%r = ((struct flock *)%0)->l_type;'' bytes
+ `thenPrimIO` \ ltype ->
+ _casm_ ``%r = ((struct flock *)%0)->l_whence;'' bytes
+ `thenPrimIO` \ lwhence ->
+ _casm_ ``%r = ((struct flock *)%0)->l_start;'' bytes
+ `thenPrimIO` \ lstart ->
+ _casm_ ``%r = ((struct flock *)%0)->l_len;'' bytes
+ `thenPrimIO` \ llen ->
+ _casm_ ``%r = ((struct flock *)%0)->l_pid;'' bytes
+ `thenPrimIO` \ lpid ->
+ returnPrimIO (lpid, (kind ltype, mode lwhence, lstart, llen))
+ where
+ kind :: Int -> LockRequest
+ kind x
+ | x == ``F_RDLCK'' = ReadLock
+ | x == ``F_WRLCK'' = WriteLock
+ | x == ``F_UNLCK'' = Unlock
+ mode :: Int -> SeekMode
+ mode x
+ | x == ``SEEK_SET'' = AbsoluteSeek
+ | x == ``SEEK_CUR'' = RelativeSeek
+ | x == ``SEEK_END'' = SeekFromEnd
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mc.hi b/ghc/lib/haskell-1.3/LibPosixIO_mc.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mc.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mg.hi b/ghc/lib/haskell-1.3/LibPosixIO_mg.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mg.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mp.hi b/ghc/lib/haskell-1.3/LibPosixIO_mp.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mp.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mr.hi b/ghc/lib/haskell-1.3/LibPosixIO_mr.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mr.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mt.hi b/ghc/lib/haskell-1.3/LibPosixIO_mt.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mt.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_p.hi b/ghc/lib/haskell-1.3/LibPosixIO_p.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_p.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_t.hi b/ghc/lib/haskell-1.3/LibPosixIO_t.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_t.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv.lhs b/ghc/lib/haskell-1.3/LibPosixProcEnv.lhs
new file mode 100644
index 0000000000..76cb0ca9cb
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv.lhs
@@ -0,0 +1,325 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixProcEnv]{Haskell 1.3 POSIX Process Environment}
+
+\begin{code}
+module LibPosixProcEnv (
+ ProcessTimes(..),
+ SysVar(..),
+ SystemID(..),
+
+ childSystemTime,
+ childUserTime,
+ createProcessGroup,
+ createSession,
+ elapsedTime,
+ epochTime,
+ getControllingTerminalName,
+ getEffectiveGroupID,
+ getEffectiveUserID,
+ getEffectiveUserName,
+ getGroups,
+ getLoginName,
+ getParentProcessID,
+ getProcessGroupID,
+ getProcessID,
+ getProcessTimes,
+ getRealGroupID,
+ getRealUserID,
+ getSysVar,
+ getSystemID,
+ getTerminalName,
+ joinProcessGroup,
+ machine,
+ nodeName,
+ queryTerminal,
+ release,
+ setGroupID,
+ setProcessGroupID,
+ setUserID,
+ systemName,
+ systemTime,
+ userTime,
+ version
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixErr
+import LibPosixUtil
+
+getProcessID :: IO ProcessID
+getProcessID =
+ _ccall_ getpid `thenPrimIO` \ pid ->
+ return pid
+
+getParentProcessID :: IO ProcessID
+getParentProcessID =
+ _ccall_ getppid `thenPrimIO` \ ppid ->
+ return ppid
+
+getRealUserID :: IO UserID
+getRealUserID =
+ _ccall_ getuid `thenPrimIO` \ uid ->
+ return uid
+
+getEffectiveUserID :: IO UserID
+getEffectiveUserID =
+ _ccall_ geteuid `thenPrimIO` \ euid ->
+ return euid
+
+setUserID :: UserID -> IO ()
+setUserID uid =
+ _ccall_ setuid uid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setUserID"
+
+getLoginName :: IO String
+getLoginName =
+ _ccall_ getlogin `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ syserr "getLoginName"
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+getRealGroupID :: IO GroupID
+getRealGroupID =
+ _ccall_ getgid `thenPrimIO` \ gid ->
+ return gid
+
+getEffectiveGroupID :: IO GroupID
+getEffectiveGroupID =
+ _ccall_ getegid `thenPrimIO` \ egid ->
+ return egid
+
+setGroupID :: GroupID -> IO ()
+setGroupID gid =
+ _ccall_ setgid gid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setGroupID"
+
+getGroups :: IO [GroupID]
+getGroups =
+ _ccall_ getgroups 0 (``NULL''::_Addr) `thenPrimIO` \ ngroups ->
+ allocWords ngroups `thenStrictlyST` \ words ->
+ _casm_ ``%r = getgroups(%0,(gid_t *)%1);'' ngroups words
+ `thenPrimIO` \ ngroups ->
+ if ngroups /= -1 then
+ freeze words `thenStrictlyST` \ arr ->
+ return (map (extract arr) [0..(ngroups-1)])
+ else
+ syserr "getGroups"
+ where
+ extract (_ByteArray _ barr#) (I# n#) =
+ case indexIntArray# barr# n# of
+ r# -> (I# r#)
+
+getEffectiveUserName :: IO String
+getEffectiveUserName =
+ _ccall_ cuserid (``NULL''::_Addr) `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ syserr "getEffectiveUserName"
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+getProcessGroupID :: IO ProcessGroupID
+getProcessGroupID =
+ _ccall_ getpgrp `thenPrimIO` \ pgid ->
+ return pgid
+
+createProcessGroup :: ProcessID -> IO ProcessGroupID
+createProcessGroup pid =
+ _ccall_ setpgid pid 0 `thenPrimIO` \ pgid ->
+ if pgid == 0 then
+ return pgid
+ else
+ syserr "createProcessGroup"
+
+joinProcessGroup :: ProcessGroupID -> IO ()
+joinProcessGroup pgid =
+ _ccall_ setpgid 0 pgid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setProcessGroupID"
+
+setProcessGroupID :: ProcessID -> ProcessGroupID -> IO ()
+setProcessGroupID pid pgid =
+ _ccall_ setpgid pid pgid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setProcessGroupID"
+
+createSession :: IO ProcessGroupID
+createSession =
+ _ccall_ setsid `thenPrimIO` \ pgid ->
+ if pgid /= -1 then
+ return pgid
+ else
+ syserr "createSession"
+
+type SystemID = _ByteArray ()
+
+systemName :: SystemID -> String
+systemName sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->sysname;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ sysname ->
+ returnPrimIO sysname)
+
+nodeName :: SystemID -> String
+nodeName sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->nodename;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ nodename ->
+ returnPrimIO nodename)
+
+release :: SystemID -> String
+release sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->release;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ releaseStr ->
+ returnPrimIO releaseStr)
+
+version :: SystemID -> String
+version sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->version;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ versionStr ->
+ returnPrimIO versionStr)
+
+machine :: SystemID -> String
+machine sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->machine;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ machine ->
+ returnPrimIO machine)
+
+getSystemID :: IO SystemID
+getSystemID =
+ allocChars (``sizeof(struct utsname)''::Int) `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = uname((struct utsname *)%0);'' bytes
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ freeze bytes `thenStrictlyST` \ sid ->
+ return sid
+ else
+ syserr "getSystemID"
+
+epochTime :: IO EpochTime
+epochTime =
+ _ccall_ time (``NULL''::_Addr) `thenPrimIO` \ secs ->
+ if secs /= -1 then
+ return secs
+ else
+ syserr "epochTime"
+
+-- All times in clock ticks (see getClockTick)
+
+type ProcessTimes = (ClockTick, _ByteArray ())
+
+elapsedTime :: ProcessTimes -> ClockTick
+elapsedTime (realtime, _) = realtime
+
+userTime :: ProcessTimes -> ClockTick
+userTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_utime;'' times
+ `thenStrictlyST` \ utime ->
+ returnPrimIO utime)
+
+systemTime :: ProcessTimes -> ClockTick
+systemTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_stime;'' times
+ `thenStrictlyST` \ stime ->
+ returnPrimIO stime)
+
+childUserTime :: ProcessTimes -> ClockTick
+childUserTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_cutime;'' times
+ `thenStrictlyST` \ cutime ->
+ returnPrimIO cutime)
+
+childSystemTime :: ProcessTimes -> ClockTick
+childSystemTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_cstime;'' times
+ `thenStrictlyST` \ cstime ->
+ returnPrimIO cstime)
+
+getProcessTimes :: IO ProcessTimes
+getProcessTimes =
+ allocChars (``sizeof(struct tms)''::Int) `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = times((struct tms *)%0);'' bytes `thenPrimIO` \ elapsed ->
+ if elapsed /= -1 then
+ freeze bytes `thenStrictlyST` \ times ->
+ return (elapsed, times)
+ else
+ syserr "getProcessTimes"
+
+getControllingTerminalName :: IO FilePath
+getControllingTerminalName =
+ _ccall_ ctermid (``NULL''::_Addr) `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ failWith (NoSuchThing "no controlling terminal")
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+getTerminalName :: Channel -> IO FilePath
+getTerminalName fd =
+ _ccall_ ttyname fd `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ try (queryTerminal fd) >>=
+ either (\err -> syserr "getTerminalName")
+ (\succ -> if succ then failWith (NoSuchThing "terminal name")
+ else failWith (InappropriateType "not a terminal"))
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+queryTerminal :: Channel -> IO Bool
+queryTerminal fd =
+ _ccall_ isatty fd `thenPrimIO` \ rc ->
+ case rc of
+ -1 -> syserr "queryTerminal"
+ 0 -> return False
+ 1 -> return True
+
+data SysVar = ArgumentLimit
+ | ChildLimit
+ | ClockTick
+ | GroupLimit
+ | OpenFileLimit
+ | PosixVersion
+ | HasSavedIDs
+ | HasJobControl
+
+getSysVar :: SysVar -> IO Limit
+getSysVar v =
+ case v of
+ ArgumentLimit -> sysconf ``_SC_ARG_MAX''
+ ChildLimit -> sysconf ``_SC_CHILD_MAX''
+ ClockTick -> sysconf ``_SC_CLK_TCK''
+ GroupLimit -> sysconf ``_SC_NGROUPS_MAX''
+ OpenFileLimit -> sysconf ``_SC_OPEN_MAX''
+ PosixVersion -> sysconf ``_SC_VERSION''
+ HasSavedIDs -> sysconf ``_SC_SAVED_IDS''
+ HasJobControl -> sysconf ``_SC_JOB_CONTROL''
+ where
+ sysconf :: Int -> IO Limit
+ sysconf n =
+ _ccall_ sysconf n `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ failWith (NoSuchThing "no such system limit or option")
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim.lhs b/ghc/lib/haskell-1.3/LibPosixProcPrim.lhs
new file mode 100644
index 0000000000..9c0a2dcd05
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim.lhs
@@ -0,0 +1,543 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixProcPrim]{Haskell 1.3 POSIX Process Primitives}
+
+\begin{code}
+module LibPosixProcPrim (
+ Handler(..),
+ SignalSet(..),
+ Signal(..),
+ ProcessStatus(..),
+
+ addSignal,
+ awaitSignal,
+ backgroundRead,
+ backgroundWrite,
+ blockSignals,
+ continueProcess,
+ deleteSignal,
+ emptySignalSet,
+ executeFile,
+ exitImmediately,
+ floatingPointException,
+ forkProcess,
+ fullSignalSet,
+ getAnyProcessStatus,
+ getEnvVar,
+ getEnvironment,
+ getGroupProcessStatus,
+ getPendingSignals,
+ getProcessStatus,
+ getSignalMask,
+ illegalInstruction,
+ inSignalSet,
+ installHandler,
+ internalAbort,
+ keyboardSignal,
+ keyboardStop,
+ keyboardTermination,
+ killProcess,
+ lostConnection,
+ nullSignal,
+ openEndedPipe,
+ processStatusChanged,
+ queryStoppedChildFlag,
+ raiseSignal,
+ realTimeAlarm,
+ removeEnvVar,
+ scheduleAlarm,
+ segmentationViolation,
+ setEnvVar,
+ setEnvironment,
+ setSignalMask,
+ setStoppedChildFlag,
+ sigABRT,
+ sigALRM,
+ sigCHLD,
+ sigCONT,
+ sigFPE,
+ sigHUP,
+ sigILL,
+ sigINT,
+ sigKILL,
+ sigPIPE,
+ sigProcMask,
+ sigQUIT,
+ sigSEGV,
+ sigSTOP,
+ sigSetSize,
+ sigTERM,
+ sigTSTP,
+ sigTTIN,
+ sigTTOU,
+ sigUSR1,
+ sigUSR2,
+ signalProcess,
+ signalProcessGroup,
+ sleep,
+ softwareStop,
+ softwareTermination,
+ unBlockSignals,
+ userDefinedSignal1,
+ userDefinedSignal2,
+
+ ExitCode
+
+ ) where
+
+import PreludeGlaMisc
+import PreludeGlaST
+import PreludeStdIO
+import PS
+
+import LibPosixErr
+import LibPosixUtil
+
+import LibSystem(ExitCode(..))
+import LibPosixProcEnv (getProcessID)
+
+forkProcess :: IO (Maybe ProcessID)
+forkProcess =
+ _ccall_ fork `thenPrimIO` \ pid ->
+ case pid of
+ -1 -> syserr "forkProcess"
+ 0 -> return Nothing
+ _ -> return (Just pid)
+
+executeFile :: FilePath -- Command
+ -> Bool -- Search PATH?
+ -> [String] -- Arguments
+ -> Maybe [(String, String)] -- Environment
+ -> IO ()
+executeFile path search args Nothing =
+ _packBytesForCST path `thenStrictlyST` \ prog ->
+ vectorize (basename path:args) `thenPrimIO` \ argv ->
+ (if search then
+ _casm_ ``%r = execvp(%0,(char **)%1);'' prog argv
+ else
+ _casm_ ``%r = execv(%0,(char **)%1);'' prog argv
+ ) `thenPrimIO` \ rc ->
+ syserr "executeFile"
+
+executeFile path search args (Just env) =
+ _packBytesForCST path `thenStrictlyST` \ prog ->
+ vectorize (basename path:args) `thenPrimIO` \ argv ->
+ vectorize (map (\ (name, val) -> name ++ ('=' : val)) env)
+ `thenPrimIO` \ envp ->
+ (if search then
+ _casm_ ``%r = execvpe(%0,(char **)%1,(char **)%2);'' prog argv envp
+ else
+ _casm_ ``%r = execve(%0,(char **)%1,(char **)%2);'' prog argv envp
+ ) `thenPrimIO` \ rc ->
+ syserr "executeFile"
+
+data ProcessStatus = Exited ExitCode
+ | Terminated Signal
+ | Stopped Signal
+{- mattson -} deriving (Eq, Ord, Text)
+
+getProcessStatus :: Bool -> Bool -> ProcessID -> IO (Maybe ProcessStatus)
+getProcessStatus block stopped pid =
+ allocWords 1 `thenPrimIO` \ wstat ->
+ _casm_ ``%r = waitpid(%0, (int *)%1, %2);'' pid wstat (waitOptions block stopped)
+ `thenPrimIO` \ pid ->
+ case pid of
+ -1 -> syserr "getProcessStatus"
+ 0 -> return Nothing
+ _ -> decipherWaitStatus wstat `thenPrimIO` \ ps ->
+ return (Just ps)
+
+getGroupProcessStatus :: Bool
+ -> Bool
+ -> ProcessGroupID
+ -> IO (Maybe (ProcessID, ProcessStatus))
+getGroupProcessStatus block stopped pgid =
+ allocWords 1 `thenPrimIO` \ wstat ->
+ _casm_ ``%r = waitpid(%0, (int *)%1, %2);'' (-pgid) wstat (waitOptions block stopped)
+ `thenPrimIO` \ pid ->
+ case pid of
+ -1 -> syserr "getGroupProcessStatus"
+ 0 -> return Nothing
+ _ -> decipherWaitStatus wstat `thenPrimIO` \ ps ->
+ return (Just (pid, ps))
+
+getAnyProcessStatus :: Bool -> Bool -> IO (Maybe (ProcessID, ProcessStatus))
+getAnyProcessStatus block stopped =
+ getGroupProcessStatus block stopped 1 `handle`
+ \ err -> syserr "getAnyProcessStatus"
+
+exitImmediately :: ExitCode -> IO ()
+exitImmediately exitcode =
+ _ccall_ _exit (exitcode2Int exitcode) `thenPrimIO` \ () ->
+ syserr "exitImmediately"
+ where
+ exitcode2Int ExitSuccess = 0
+ exitcode2Int (ExitFailure n) = n
+
+getEnvironment :: IO [(String, String)]
+getEnvironment =
+ unvectorize ``environ'' 0 `thenPrimIO` \ env ->
+ return (map (split "") env)
+ where
+ split :: String -> String -> (String, String)
+ split x ('=' : xs) = (reverse x, xs)
+ split x (c:cs) = split (c:x) cs
+
+setEnvironment :: [(String, String)] -> IO ()
+setEnvironment pairs =
+ vectorize (map (\ (var,val) -> var ++ ('=' : val)) pairs)
+ `thenPrimIO` \ env ->
+ _casm_ ``%r = setenviron((char **)%0);'' env `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setEnvironment"
+
+getEnvVar :: String -> IO String
+getEnvVar name =
+ _packBytesForCST name `thenStrictlyST` \ str ->
+ _ccall_ getenv str `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ failWith (NoSuchThing "no such environment variable")
+ else
+ strcpy str `thenPrimIO` \ env ->
+ return env
+
+setEnvVar :: String -> String -> IO ()
+setEnvVar name value =
+ _packBytesForCST (name ++ ('=' : value)) `thenStrictlyST` \ str ->
+ _ccall_ setenv str `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setEnvVar"
+
+removeEnvVar :: String -> IO ()
+removeEnvVar name =
+ _packBytesForCST name `thenStrictlyST` \ str ->
+ _ccall_ delenv str `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "removeEnvVar"
+
+type Signal = Int
+
+nullSignal :: Signal
+nullSignal = 0
+
+backgroundRead, sigTTIN :: Signal
+backgroundRead = ``SIGTTIN''
+sigTTIN = ``SIGTTIN''
+
+backgroundWrite, sigTTOU :: Signal
+backgroundWrite = ``SIGTTOU''
+sigTTOU = ``SIGTTOU''
+
+continueProcess, sigCONT :: Signal
+continueProcess = ``SIGCONT''
+sigCONT = ``SIGCONT''
+
+floatingPointException, sigFPE :: Signal
+floatingPointException = ``SIGFPE''
+sigFPE = ``SIGFPE''
+
+illegalInstruction, sigILL :: Signal
+illegalInstruction = ``SIGILL''
+sigILL = ``SIGILL''
+
+internalAbort, sigABRT ::Signal
+internalAbort = ``SIGABRT''
+sigABRT = ``SIGABRT''
+
+keyboardSignal, sigINT :: Signal
+keyboardSignal = ``SIGINT''
+sigINT = ``SIGINT''
+
+keyboardStop, sigTSTP :: Signal
+keyboardStop = ``SIGTSTP''
+sigTSTP = ``SIGTSTP''
+
+keyboardTermination, sigQUIT :: Signal
+keyboardTermination = ``SIGQUIT''
+sigQUIT = ``SIGQUIT''
+
+killProcess, sigKILL :: Signal
+killProcess = ``SIGKILL''
+sigKILL = ``SIGKILL''
+
+lostConnection, sigHUP :: Signal
+lostConnection = ``SIGHUP''
+sigHUP = ``SIGHUP''
+
+openEndedPipe, sigPIPE :: Signal
+openEndedPipe = ``SIGPIPE''
+sigPIPE = ``SIGPIPE''
+
+processStatusChanged, sigCHLD :: Signal
+processStatusChanged = ``SIGCHLD''
+sigCHLD = ``SIGCHLD''
+
+realTimeAlarm, sigALRM :: Signal
+realTimeAlarm = ``SIGALRM''
+sigALRM = ``SIGALRM''
+
+segmentationViolation, sigSEGV :: Signal
+segmentationViolation = ``SIGSEGV''
+sigSEGV = ``SIGSEGV''
+
+softwareStop, sigSTOP :: Signal
+softwareStop = ``SIGSTOP''
+sigSTOP = ``SIGSTOP''
+
+softwareTermination, sigTERM :: Signal
+softwareTermination = ``SIGTERM''
+sigTERM = ``SIGTERM''
+
+userDefinedSignal1, sigUSR1 :: Signal
+userDefinedSignal1 = ``SIGUSR1''
+sigUSR1 = ``SIGUSR1''
+
+userDefinedSignal2, sigUSR2 :: Signal
+userDefinedSignal2 = ``SIGUSR2''
+sigUSR2 = ``SIGUSR2''
+
+signalProcess :: Signal -> ProcessID -> IO ()
+signalProcess int pid =
+ _ccall_ kill pid int `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "signalProcess"
+
+raiseSignal :: Signal -> IO ()
+raiseSignal int = getProcessID >>= signalProcess int
+
+signalProcessGroup :: Signal -> ProcessGroupID -> IO ()
+signalProcessGroup int pgid = signalProcess int (-pgid)
+
+setStoppedChildFlag :: Bool -> IO Bool
+setStoppedChildFlag b =
+ _casm_ ``%r = nocldstop; nocldstop = %0;'' x `thenPrimIO` \ rc ->
+ return (rc == 0)
+ where
+ x = case b of {True -> 0; False -> 1}
+
+queryStoppedChildFlag :: IO Bool
+queryStoppedChildFlag =
+ _casm_ ``%r = nocldstop;'' `thenPrimIO` \ rc ->
+ return (rc == 0)
+
+data Handler = Default
+ | Ignore
+ | Catch (IO ())
+
+type SignalSet = _ByteArray ()
+
+sigSetSize :: Int
+sigSetSize = ``sizeof(sigset_t)''
+
+emptySignalSet :: SignalSet
+emptySignalSet = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``(void) sigemptyset((sigset_t *)%0);'' bytes
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ sigset ->
+ returnPrimIO sigset
+ )
+
+fullSignalSet :: SignalSet
+fullSignalSet = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``(void) sigfillset((sigset_t *)%0);'' bytes
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ sigset ->
+ returnPrimIO sigset
+ )
+
+addSignal :: Signal -> SignalSet -> SignalSet
+addSignal int oldset = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``*(sigset_t *)%0 = *(sigset_t *)%1; (void) sigaddset((sigset_t *)%0, %2);''
+ bytes oldset int `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ newset ->
+ returnPrimIO newset
+ )
+
+inSignalSet :: Signal -> SignalSet -> Bool
+inSignalSet int sigset = unsafePerformPrimIO (
+ _casm_ ``%r = sigismember((sigset_t *)%0, %1);'' sigset int
+ `thenPrimIO` \ rc ->
+ if rc == 1 then
+ returnPrimIO True
+ else
+ returnPrimIO False
+ )
+
+deleteSignal :: Signal -> SignalSet -> SignalSet
+deleteSignal int oldset = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``*(sigset_t *)%0 = *(sigset_t *)%1; (void) sigdelset((sigset_t *)%0, %2);''
+ bytes oldset int `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ newset ->
+ returnPrimIO newset
+ )
+
+installHandler :: Signal
+ -> Handler
+ -> Maybe SignalSet -- other signals to block
+ -> IO Handler -- old handler
+
+#ifdef __PARALLEL_HASKELL__
+installHandler = error "installHandler: not available for Parallel Haskell"
+#else
+installHandler int handler maybe_mask = (
+ case handler of
+ Default -> _ccall_ stg_sig_ignore int mask
+ Ignore -> _ccall_ stg_sig_default int mask
+ Catch m ->
+ makeStablePtr (wrap m) `thenPrimIO` \ sptr ->
+ _ccall_ stg_sig_catch int sptr mask
+ )
+ `thenPrimIO` \ rc ->
+ if rc >= 0 then
+ _casm_ ``%r = (StgStablePtr) (%0);'' rc `thenPrimIO` \ osptr ->
+ deRefStablePtr osptr `thenPrimIO` \ m ->
+ return (Catch m)
+ else if rc == ``STG_SIG_DFL'' then
+ return Default
+ else if rc == ``STG_SIG_IGN'' then
+ return Ignore
+ else
+ syserr "installHandler"
+ where
+ mask = case maybe_mask of
+ Nothing -> emptySignalSet
+ Just x -> x
+ wrap :: IO () -> PrimIO ()
+ wrap m s =
+ case (m s) of
+ (result, s2@(S# _)) ->
+ case result of
+ Right () -> ( (), s2 )
+ Left err -> error ("I/O error: "++shows err "\n")
+
+#endif {-!__PARALLEL_HASKELL__-}
+
+getSignalMask :: IO SignalSet
+getSignalMask =
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = sigprocmask(0, NULL, (sigset_t *)%0);'' bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ sigset ->
+ return sigset
+ else
+ syserr "getSignalMask"
+
+sigProcMask :: String -> Int -> SignalSet -> IO SignalSet
+sigProcMask name how sigset =
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = sigprocmask(%0, (sigset_t *)%1, (sigset_t *)%2);'' how sigset bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ oldset ->
+ return oldset
+ else
+ syserr name
+
+setSignalMask :: SignalSet -> IO SignalSet
+setSignalMask = sigProcMask "setSignalMask" ``SIG_SETMASK''
+
+blockSignals :: SignalSet -> IO SignalSet
+blockSignals = sigProcMask "blockSignals" ``SIG_BLOCK''
+
+unBlockSignals :: SignalSet -> IO SignalSet
+unBlockSignals = sigProcMask "unBlockSignals" ``SIG_UNBLOCK''
+
+getPendingSignals :: IO SignalSet
+getPendingSignals =
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = sigpending((sigset_t *)%0);'' bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ sigset ->
+ return sigset
+ else
+ syserr "getPendingSignals"
+
+awaitSignal :: Maybe SignalSet -> IO ()
+awaitSignal maybe_sigset =
+ pause `thenPrimIO` \ () ->
+ getErrorCode >>= \ err ->
+ if err == interruptedOperation then
+ return ()
+ else
+ syserr "awaitSignal"
+ where
+ pause :: PrimIO ()
+ pause =
+ case maybe_sigset of
+ Nothing -> _casm_ ``(void) pause();''
+ Just sigset -> _casm_ ``(void) sigsuspend((sigset_t *)%0);'' sigset
+
+scheduleAlarm :: Int -> IO Int
+scheduleAlarm (I# secs#) =
+ _ccall_ alarm (W# (int2Word# secs#)) `thenPrimIO` \ (W# w#) ->
+ return (I# (word2Int# w#))
+
+sleep :: Int -> IO ()
+sleep 0 = return ()
+sleep (I# secs#) =
+ _ccall_ sleep (W# (int2Word# secs#)) `seqPrimIO`
+ return ()
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Get the trailing component of a path
+
+basename :: String -> String
+basename "" = ""
+basename (c:cs)
+ | c == '/' = basename cs
+ | otherwise = c : basename cs
+
+-- Convert wait options to appropriate set of flags
+
+waitOptions :: Bool -> Bool -> Int
+-- block stopped
+waitOptions False False = ``WNOHANG''
+waitOptions False True = ``(WNOHANG|WUNTRACED)''
+waitOptions True False = 0
+waitOptions True True = ``WUNTRACED''
+
+-- Turn a (ptr to a) wait status into a ProcessStatus
+
+decipherWaitStatus :: _MutableByteArray s x -> PrimIO ProcessStatus
+decipherWaitStatus wstat =
+ _casm_ ``%r = WIFEXITED(*(int *)%0);'' wstat `thenPrimIO` \ exited ->
+ if exited /= 0 then
+ _casm_ ``%r = WEXITSTATUS(*(int *)%0);'' wstat
+ `thenPrimIO` \ exitstatus ->
+ if exitstatus == 0 then
+ returnPrimIO (Exited ExitSuccess)
+ else
+ returnPrimIO (Exited (ExitFailure exitstatus))
+ else
+ _casm_ ``%r = WIFSIGNALED(*(int *)%0);'' wstat
+ `thenPrimIO` \ signalled ->
+ if signalled /= 0 then
+ _casm_ ``%r = WTERMSIG(*(int *)%0);'' wstat
+ `thenPrimIO` \ termsig ->
+ returnPrimIO (Terminated termsig)
+ else
+ _casm_ ``%r = WSTOPSIG(*(int *)%0);'' wstat
+ `thenPrimIO` \ stopsig ->
+ returnPrimIO (Stopped stopsig)
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi
new file mode 100644
index 0000000000..866badf8c5
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 4 XXXX 6 \ (u0 :: Int) (u1 :: Handler) (u2 :: Maybe (_ByteArray ())) (u3 :: _State _RealWorld) -> _APP_ _TYAPP_ error { (Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)) } [ _NOREP_S_ "installHandler: not available for Parallel Haskell", u0, u1, u2, u3 ] _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY.hi b/ghc/lib/haskell-1.3/LibPosixTTY.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY.lhs b/ghc/lib/haskell-1.3/LibPosixTTY.lhs
new file mode 100644
index 0000000000..bfe833f5ef
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY.lhs
@@ -0,0 +1,578 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixTTY]{Haskell 1.3 POSIX Device-Specific Functions}
+
+\begin{code}
+module LibPosixTTY (
+ BaudRate(..),
+ ControlCharacter(..),
+ FlowAction(..),
+ QueueSelector(..),
+ TerminalAttributes(..),
+ TerminalMode(..),
+ TerminalState(..),
+ bitsPerByte,
+ controlChar,
+ controlFlow,
+ discardData,
+ drainOutput,
+ getTerminalAttributes,
+ getTerminalProcessGroupID,
+ inputSpeed,
+ inputTime,
+ minInput,
+ outputSpeed,
+ sendBreak,
+ setTerminalAttributes,
+ setTerminalProcessGroupID,
+ terminalMode,
+ withBits,
+ withCC,
+ withInputSpeed,
+ withMinInput,
+ withMode,
+ withOutputSpeed,
+ withTime,
+ withoutCC,
+ withoutMode
+ ) where
+
+import PreludeGlaST
+
+import LibPosixUtil
+
+type TerminalAttributes = _ByteArray ()
+
+data TerminalMode = InterruptOnBreak
+ | MapCRtoLF
+ | IgnoreBreak
+ | IgnoreCR
+ | IgnoreParityErrors
+ | MapLFtoCR
+ | CheckParity
+ | StripHighBit
+ | StartStopInput
+ | StartStopOutput
+ | MarkParityErrors
+ | ProcessOutput
+ | LocalMode
+ | ReadEnable
+ | TwoStopBits
+ | HangupOnClose
+ | EnableParity
+ | OddParity
+ | EnableEcho
+ | EchoErase
+ | EchoKill
+ | EchoLF
+ | ProcessInput
+ | ExtendedFunctions
+ | KeyboardInterrupts
+ | NoFlushOnInterrupt
+ | BackgroundWriteInterrupt
+
+withoutMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
+withoutMode termios InterruptOnBreak = clearInputFlag ``BRKINT'' termios
+withoutMode termios MapCRtoLF = clearInputFlag ``ICRNL'' termios
+withoutMode termios IgnoreBreak = clearInputFlag ``IGNBRK'' termios
+withoutMode termios IgnoreCR = clearInputFlag ``IGNCR'' termios
+withoutMode termios IgnoreParityErrors = clearInputFlag ``IGNPAR'' termios
+withoutMode termios MapLFtoCR = clearInputFlag ``INLCR'' termios
+withoutMode termios CheckParity = clearInputFlag ``INPCK'' termios
+withoutMode termios StripHighBit = clearInputFlag ``ISTRIP'' termios
+withoutMode termios StartStopInput = clearInputFlag ``IXOFF'' termios
+withoutMode termios StartStopOutput = clearInputFlag ``IXON'' termios
+withoutMode termios MarkParityErrors = clearInputFlag ``PARMRK'' termios
+withoutMode termios ProcessOutput = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_oflag &= ~OPOST;'' bytes termios
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+withoutMode termios LocalMode = clearControlFlag ``CLOCAL'' termios
+withoutMode termios ReadEnable = clearControlFlag ``CREAD'' termios
+withoutMode termios TwoStopBits = clearControlFlag ``CSTOPB'' termios
+withoutMode termios HangupOnClose = clearControlFlag ``HUPCL'' termios
+withoutMode termios EnableParity = clearControlFlag ``PARENB'' termios
+withoutMode termios OddParity = clearControlFlag ``PARODD'' termios
+withoutMode termios EnableEcho = clearLocalFlag ``ECHO'' termios
+withoutMode termios EchoErase = clearLocalFlag ``ECHOE'' termios
+withoutMode termios EchoKill = clearLocalFlag ``ECHOK'' termios
+withoutMode termios EchoLF = clearLocalFlag ``ECHONL'' termios
+withoutMode termios ProcessInput = clearLocalFlag ``ICANON'' termios
+withoutMode termios ExtendedFunctions = clearLocalFlag ``IEXTEN'' termios
+withoutMode termios KeyboardInterrupts = clearLocalFlag ``ISIG'' termios
+withoutMode termios NoFlushOnInterrupt = setLocalFlag ``NOFLSH'' termios
+withoutMode termios BackgroundWriteInterrupt = clearLocalFlag ``TOSTOP'' termios
+
+withMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
+withMode termios InterruptOnBreak = setInputFlag ``BRKINT'' termios
+withMode termios MapCRtoLF = setInputFlag ``ICRNL'' termios
+withMode termios IgnoreBreak = setInputFlag ``IGNBRK'' termios
+withMode termios IgnoreCR = setInputFlag ``IGNCR'' termios
+withMode termios IgnoreParityErrors = setInputFlag ``IGNPAR'' termios
+withMode termios MapLFtoCR = setInputFlag ``INLCR'' termios
+withMode termios CheckParity = setInputFlag ``INPCK'' termios
+withMode termios StripHighBit = setInputFlag ``ISTRIP'' termios
+withMode termios StartStopInput = setInputFlag ``IXOFF'' termios
+withMode termios StartStopOutput = setInputFlag ``IXON'' termios
+withMode termios MarkParityErrors = setInputFlag ``PARMRK'' termios
+withMode termios ProcessOutput = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_oflag |= OPOST;'' bytes termios
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+withMode termios LocalMode = setControlFlag ``CLOCAL'' termios
+withMode termios ReadEnable = setControlFlag ``CREAD'' termios
+withMode termios TwoStopBits = setControlFlag ``CSTOPB'' termios
+withMode termios HangupOnClose = setControlFlag ``HUPCL'' termios
+withMode termios EnableParity = setControlFlag ``PARENB'' termios
+withMode termios OddParity = setControlFlag ``PARODD'' termios
+withMode termios EnableEcho = setLocalFlag ``ECHO'' termios
+withMode termios EchoErase = setLocalFlag ``ECHOE'' termios
+withMode termios EchoKill = setLocalFlag ``ECHOK'' termios
+withMode termios EchoLF = setLocalFlag ``ECHONL'' termios
+withMode termios ProcessInput = setLocalFlag ``ICANON'' termios
+withMode termios ExtendedFunctions = setLocalFlag ``IEXTEN'' termios
+withMode termios KeyboardInterrupts = setLocalFlag ``ISIG'' termios
+withMode termios NoFlushOnInterrupt = clearLocalFlag ``NOFLSH'' termios
+withMode termios BackgroundWriteInterrupt = setLocalFlag ``TOSTOP'' termios
+
+terminalMode :: TerminalMode -> TerminalAttributes -> Bool
+terminalMode InterruptOnBreak = testInputFlag ``BRKINT''
+terminalMode MapCRtoLF = testInputFlag ``ICRNL''
+terminalMode IgnoreBreak = testInputFlag ``IGNBRK''
+terminalMode IgnoreCR = testInputFlag ``IGNCR''
+terminalMode IgnoreParityErrors = testInputFlag ``IGNPAR''
+terminalMode MapLFtoCR = testInputFlag ``INLCR''
+terminalMode CheckParity = testInputFlag ``INPCK''
+terminalMode StripHighBit = testInputFlag ``ISTRIP''
+terminalMode StartStopInput = testInputFlag ``IXOFF''
+terminalMode StartStopOutput = testInputFlag ``IXON''
+terminalMode MarkParityErrors = testInputFlag ``PARMRK''
+terminalMode ProcessOutput = \ termios -> unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_oflag & OPOST;'' termios
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+terminalMode LocalMode = testControlFlag ``CLOCAL''
+terminalMode ReadEnable = testControlFlag ``CREAD''
+terminalMode TwoStopBits = testControlFlag ``CSTOPB''
+terminalMode HangupOnClose = testControlFlag ``HUPCL''
+terminalMode EnableParity = testControlFlag ``PARENB''
+terminalMode OddParity = testControlFlag ``PARODD''
+terminalMode EnableEcho = testLocalFlag ``ECHO''
+terminalMode EchoErase = testLocalFlag ``ECHOE''
+terminalMode EchoKill = testLocalFlag ``ECHOK''
+terminalMode EchoLF = testLocalFlag ``ECHONL''
+terminalMode ProcessInput = testLocalFlag ``ICANON''
+terminalMode ExtendedFunctions = testLocalFlag ``IEXTEN''
+terminalMode KeyboardInterrupts = testLocalFlag ``ISIG''
+terminalMode NoFlushOnInterrupt = not . testLocalFlag ``NOFLSH''
+terminalMode BackgroundWriteInterrupt = testLocalFlag ``TOSTOP''
+
+bitsPerByte :: TerminalAttributes -> Int
+bitsPerByte termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cflag & CSIZE;'' termios
+ `thenPrimIO` \ w ->
+ returnPrimIO (word2Bits w))
+ where
+ word2Bits :: _Word -> Int
+ word2Bits x =
+ if x == ``CS5'' then 5
+ else if x == ``CS6'' then 6
+ else if x == ``CS7'' then 7
+ else if x == ``CS8'' then 8
+ else 0
+
+withBits :: TerminalAttributes -> Int -> TerminalAttributes
+withBits termios bits = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cflag =
+ (((struct termios *)%1)->c_cflag & ~CSIZE) | %2;''
+ bytes termios (mask bits) `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+ where
+ mask :: Int -> _Word
+ mask 5 = ``CS5''
+ mask 6 = ``CS6''
+ mask 7 = ``CS7''
+ mask 8 = ``CS8''
+ mask _ = error "withBits bit value out of range [5..8]"
+
+data ControlCharacter = EndOfFile
+ | EndOfLine
+ | Erase
+ | Interrupt
+ | Kill
+ | Quit
+ | Suspend
+ | Start
+ | Stop
+
+controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char
+controlChar termios cc = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cc[%1];'' termios (cc2Word cc)
+ `thenPrimIO` \ val ->
+ if val == ``_POSIX_VDISABLE'' then
+ returnPrimIO Nothing
+ else
+ returnPrimIO (Just (chr val)))
+
+withCC :: TerminalAttributes
+ -> (ControlCharacter, Char)
+ -> TerminalAttributes
+withCC termios (cc, c) = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[%2] = %3;''
+ bytes termios (cc2Word cc) c `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+withoutCC :: TerminalAttributes
+ -> ControlCharacter
+ -> TerminalAttributes
+withoutCC termios cc = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[%2] = _POSIX_VDISABLE;''
+ bytes termios (cc2Word cc) `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+inputTime :: TerminalAttributes -> Int
+inputTime termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cc[VTIME];'' termios
+ `thenPrimIO` \ count ->
+ returnPrimIO count)
+
+withTime :: TerminalAttributes -> Int -> TerminalAttributes
+withTime termios time = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[VTIME] = %2;'' bytes termios time
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+minInput :: TerminalAttributes -> Int
+minInput termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cc[VMIN];'' termios
+ `thenPrimIO` \ count ->
+ returnPrimIO count)
+
+withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
+withMinInput termios count = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[VMIN] = %2;'' bytes termios count
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+data BaudRate = B0
+ | B50
+ | B75
+ | B110
+ | B134
+ | B150
+ | B200
+ | B300
+ | B600
+ | B1200
+ | B1800
+ | B2400
+ | B4800
+ | B9600
+ | B19200
+ | B38400
+
+inputSpeed :: TerminalAttributes -> BaudRate
+inputSpeed termios = unsafePerformPrimIO (
+ _casm_ ``%r = cfgetispeed((struct termios *)%0);'' termios
+ `thenPrimIO` \ w ->
+ returnPrimIO (word2Baud w))
+
+withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
+withInputSpeed termios br = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ cfsetispeed((struct termios *)%0, %2);'' bytes termios (baud2Word br)
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+outputSpeed :: TerminalAttributes -> BaudRate
+outputSpeed termios = unsafePerformPrimIO (
+ _casm_ ``%r = cfgetospeed((struct termios *)%0);'' termios
+ `thenPrimIO` \ w ->
+ returnPrimIO (word2Baud w))
+
+withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
+withOutputSpeed termios br = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ cfsetospeed((struct termios *)%0, %2);'' bytes termios (baud2Word br)
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+getTerminalAttributes :: Channel -> IO TerminalAttributes
+getTerminalAttributes fd =
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = tcgetattr(%0,(struct termios *)%1);'' fd bytes
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ freeze bytes `thenStrictlyST` \ termios ->
+ return termios
+ else
+ syserr "getTerminalAttributes"
+
+data TerminalState = Immediately
+ | WhenDrained
+ | WhenFlushed
+
+setTerminalAttributes :: Channel
+ -> TerminalAttributes
+ -> TerminalState
+ -> IO ()
+setTerminalAttributes fd termios state =
+ _casm_ ``%r = tcsetattr(%0,%1,(struct termios *)%2);'' fd (state2Int state) termios
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "setTerminalAttributes"
+ where
+ state2Int :: TerminalState -> Int
+ state2Int Immediately = ``TCSANOW''
+ state2Int WhenDrained = ``TCSADRAIN''
+ state2Int WhenFlushed = ``TCSAFLUSH''
+
+sendBreak :: Channel -> Int -> IO ()
+sendBreak fd duration =
+ _ccall_ tcsendbreak fd duration `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "sendBreak"
+
+drainOutput :: Channel -> IO ()
+drainOutput fd =
+ _ccall_ tcdrain fd `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "drainOutput"
+
+data QueueSelector = InputQueue
+ | OutputQueue
+ | BothQueues
+
+discardData :: Channel -> QueueSelector -> IO ()
+discardData fd queue =
+ _ccall_ tcflush fd (queue2Int queue) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "discardData"
+ where
+ queue2Int :: QueueSelector -> Int
+ queue2Int InputQueue = ``TCIFLUSH''
+ queue2Int OutputQueue = ``TCOFLUSH''
+ queue2Int BothQueues = ``TCIOFLUSH''
+
+data FlowAction = SuspendOutput
+ | RestartOutput
+ | TransmitStop
+ | TransmitStart
+
+controlFlow :: Channel -> FlowAction -> IO ()
+controlFlow fd action =
+ _ccall_ tcflow fd (action2Int action) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "controlFlow"
+ where
+ action2Int :: FlowAction -> Int
+ action2Int SuspendOutput = ``TCOOFF''
+ action2Int RestartOutput = ``TCOON''
+ action2Int TransmitStop = ``TCIOFF''
+ action2Int TransmitStart = ``TCION''
+
+getTerminalProcessGroupID :: Channel -> IO ProcessGroupID
+getTerminalProcessGroupID fd =
+ _ccall_ tcgetpgrp fd `thenPrimIO` \ pgid ->
+ if pgid /= -1 then
+ return pgid
+ else
+ syserr "getTerminalProcessGroupID"
+
+setTerminalProcessGroupID :: Channel -> ProcessGroupID -> IO ()
+setTerminalProcessGroupID fd pgid =
+ _ccall_ tcsetpgrp fd pgid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setTerminalProcessGroupID"
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Convert Haskell ControlCharacter to Int
+
+cc2Word :: ControlCharacter -> _Word
+cc2Word EndOfFile = ``VEOF''
+cc2Word EndOfLine = ``VEOL''
+cc2Word Erase = ``VERASE''
+cc2Word Interrupt = ``VINTR''
+cc2Word Kill = ``VKILL''
+cc2Word Quit = ``VQUIT''
+cc2Word Suspend = ``VSUSP''
+cc2Word Start = ``VSTART''
+cc2Word Stop = ``VSTOP''
+
+-- Convert Haskell BaudRate to unsigned integral type (_Word)
+
+baud2Word :: BaudRate -> _Word
+baud2Word B0 = ``B0''
+baud2Word B50 = ``B50''
+baud2Word B75 = ``B75''
+baud2Word B110 = ``B110''
+baud2Word B134 = ``B134''
+baud2Word B150 = ``B150''
+baud2Word B200 = ``B200''
+baud2Word B300 = ``B300''
+baud2Word B600 = ``B600''
+baud2Word B1200 = ``B1200''
+baud2Word B1800 = ``B1800''
+baud2Word B2400 = ``B2400''
+baud2Word B4800 = ``B4800''
+baud2Word B9600 = ``B9600''
+baud2Word B19200 = ``B19200''
+baud2Word B38400 = ``B38400''
+
+-- And convert a word back to a baud rate
+-- We really need some cpp macros here.
+
+word2Baud :: _Word -> BaudRate
+word2Baud x =
+ if x == ``B0'' then B0
+ else if x == ``B50'' then B50
+ else if x == ``B75'' then B75
+ else if x == ``B110'' then B110
+ else if x == ``B134'' then B134
+ else if x == ``B150'' then B150
+ else if x == ``B200'' then B200
+ else if x == ``B300'' then B300
+ else if x == ``B600'' then B600
+ else if x == ``B1200'' then B1200
+ else if x == ``B1800'' then B1800
+ else if x == ``B2400'' then B2400
+ else if x == ``B4800'' then B4800
+ else if x == ``B9600'' then B9600
+ else if x == ``B19200'' then B19200
+ else if x == ``B38400'' then B38400
+ else error "unknown baud rate"
+
+-- Clear termios i_flag
+
+clearInputFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+clearInputFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_iflag &= ~%2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Set termios i_flag
+
+setInputFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+setInputFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_iflag |= %2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Examine termios i_flag
+
+testInputFlag :: _Word -> TerminalAttributes -> Bool
+testInputFlag flag termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_iflag & %1;'' termios flag
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+
+-- Clear termios c_flag
+
+clearControlFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+clearControlFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cflag &= ~%2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Set termios c_flag
+
+setControlFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+setControlFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cflag |= %2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Examine termios c_flag
+
+testControlFlag :: _Word -> TerminalAttributes -> Bool
+testControlFlag flag termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cflag & %1;'' termios flag
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+
+-- Clear termios l_flag
+
+clearLocalFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+clearLocalFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_lflag &= ~%2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Set termios l_flag
+
+setLocalFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+setLocalFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_lflag |= %2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Examine termios l_flag
+
+testLocalFlag :: _Word -> TerminalAttributes -> Bool
+testLocalFlag flag termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_iflag & %1;'' termios flag
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mc.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mc.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mc.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mg.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mg.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mg.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mp.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mp.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mp.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mr.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mr.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mr.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mt.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mt.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mt.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_p.hi b/ghc/lib/haskell-1.3/LibPosixTTY_p.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_p.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_t.hi b/ghc/lib/haskell-1.3/LibPosixTTY_t.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_t.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil.hi b/ghc/lib/haskell-1.3/LibPosixUtil.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil.lhs b/ghc/lib/haskell-1.3/LibPosixUtil.lhs
new file mode 100644
index 0000000000..340e443255
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil.lhs
@@ -0,0 +1,123 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixUtil]{Haskell 1.3 POSIX utilities}
+
+\begin{code}
+
+module LibPosixUtil (
+ LibPosixUtil..,
+
+ _ByteArray,
+ _MutableByteArray,
+ _ST(..)
+
+ ) where
+
+import PreludeGlaST
+import PS
+
+\end{code}
+
+First, all of the major Posix data types, to avoid any recursive dependencies
+
+\begin{code}
+
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessID = Int
+type ProcessGroupID = ProcessID
+type UserID = Int
+
+\end{code}
+
+Now some local fucntions that shouldn't go outside this library.
+
+\begin{code}
+
+-- Fail with a SystemError. Normally, we do not try to re-interpret POSIX
+-- error numbers, so most routines in this file will only fail with SystemError.
+-- The only exceptions are (1) those routines where failure of some kind may be
+-- considered ``normal''...e.g. getpwnam() for a non-existent user, or (2) those
+-- routines which do not set errno.
+
+syserr :: String -> IO a
+syserr = failWith . SystemError
+
+-- Allocate a mutable array of characters with no indices.
+
+allocChars :: Int -> _ST s (_MutableByteArray s ())
+allocChars (I# size#) (S# s#) =
+ case newCharArray# size# s# of
+ StateAndMutableByteArray# s2# barr# -> (_MutableByteArray bot barr#, S# s2#)
+ where
+ bot = error "allocChars{LibPosix}"
+
+-- Allocate a mutable array of words with no indices
+
+allocWords :: Int -> _ST s (_MutableByteArray s ())
+allocWords (I# size#) (S# s#) =
+ case newIntArray# size# s# of
+ StateAndMutableByteArray# s2# barr# -> (_MutableByteArray bot barr#, S# s2#)
+ where
+ bot = error "allocWords{LibPosix}"
+
+-- Freeze these index-free mutable arrays
+
+freeze :: _MutableByteArray s () -> _ST s (_ByteArray ())
+freeze (_MutableByteArray ixs arr#) (S# s#) =
+ case unsafeFreezeByteArray# arr# s# of
+ StateAndByteArray# s2# frozen# -> (_ByteArray ixs frozen#, S# s2#)
+
+-- Copy a null-terminated string from outside the heap to
+-- Haskellized nonsense inside the heap
+
+strcpy :: _Addr -> PrimIO String
+strcpy str
+ | str == ``NULL'' = returnPrimIO ""
+ | otherwise =
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ ps ->
+ returnPrimIO (_unpackPS ps)
+
+-- Turn a string list into a NULL-terminated vector of null-terminated strings
+-- No indices...I hate indices. Death to Ix.
+
+vectorize :: [String] -> PrimIO (_ByteArray ())
+vectorize xs =
+ allocWords (len+1) `thenStrictlyST` \ arr ->
+ fill arr 0 xs `thenPrimIO` \ () ->
+ freeze arr `thenStrictlyST` \ frozen ->
+ returnPrimIO frozen
+
+ where
+ len :: Int
+ len = length xs
+
+ fill :: _MutableByteArray _RealWorld () -> Int -> [String] -> PrimIO ()
+ fill arr n [] =
+ _casm_ ``((PP_)%0)[%1] = NULL;'' arr n
+ fill arr n (x:xs) =
+ _packBytesForCST x `thenStrictlyST` \ barr ->
+ _casm_ ``((PP_)%0)[%1] = (P_)%2;'' arr n barr
+ `thenPrimIO` \ () ->
+ fill arr (n+1) xs
+
+-- Turn a NULL-terminated vector of null-terminated strings into a string list
+
+unvectorize :: _Addr -> Int -> PrimIO [String]
+unvectorize ptr n
+ | str == ``NULL'' = returnPrimIO []
+ | otherwise =
+ strcpy str `thenPrimIO` \ x ->
+ unvectorize ptr (n+1) `thenPrimIO` \ xs ->
+ returnPrimIO (x : xs)
+ where str = indexAddrOffAddr ptr n
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mc.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mc.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mc.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mg.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mg.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mg.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mp.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mp.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mp.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mr.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mr.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mr.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mt.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mt.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mt.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_p.hi b/ghc/lib/haskell-1.3/LibPosixUtil_p.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_p.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_t.hi b/ghc/lib/haskell-1.3/LibPosixUtil_t.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_t.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mc.hi b/ghc/lib/haskell-1.3/LibPosix_mc.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mc.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mg.hi b/ghc/lib/haskell-1.3/LibPosix_mg.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mg.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mp.hi b/ghc/lib/haskell-1.3/LibPosix_mp.hi
new file mode 100644
index 0000000000..2019d507dc
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mp.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 4 XXXX 6 \ (u0 :: Int) (u1 :: Handler) (u2 :: Maybe (_ByteArray ())) (u3 :: _State _RealWorld) -> _APP_ _TYAPP_ error { (Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)) } [ _NOREP_S_ "installHandler: not available for Parallel Haskell", u0, u1, u2, u3 ] _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mr.hi b/ghc/lib/haskell-1.3/LibPosix_mr.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mr.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mt.hi b/ghc/lib/haskell-1.3/LibPosix_mt.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mt.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_p.hi b/ghc/lib/haskell-1.3/LibPosix_p.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_p.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_t.hi b/ghc/lib/haskell-1.3/LibPosix_t.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_t.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem.hi b/ghc/lib/haskell-1.3/LibSystem.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem.lhs b/ghc/lib/haskell-1.3/LibSystem.lhs
new file mode 100644
index 0000000000..1705f847a1
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem.lhs
@@ -0,0 +1,103 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibSystem]{Haskell 1.3 System Interaction}
+
+\begin{code}
+module LibSystem where
+
+import PreludeGlaST
+import PreludeIOError
+import PreludeDialogueIO ( unpackArgv, unpackProgName )
+
+data ExitCode = ExitSuccess
+ | ExitFailure Int
+{- mattson -} deriving (Eq, Ord, Text)
+
+\end{code}
+
+The $ExitCode$ type defines the exit codes that a program
+can return. $ExitSuccess$ indicates successful termination;
+and $ExitFailure code$ indicates program failure
+with value {\em code}. The exact interpretation of {\em code}
+is operating-system dependent. In particular, some values of
+{\em code} may be prohibited (e.g. 0 on a POSIX-compliant system).
+
+\begin{code}
+getArgs :: IO [String]
+getArgs = return (unpackArgv ``prog_argv'' (``prog_argc''::Int))
+\end{code}
+
+Computation $getArgs$ returns a list of the program's command
+line arguments (not including the program name).
+
+\begin{code}
+getProgName :: IO String
+getProgName = return (unpackProgName ``prog_argv'')
+\end{code}
+
+Computation $getProgName$ returns the name of the program
+as it was invoked.
+
+\begin{code}
+getEnv :: String -> IO String
+getEnv name =
+ _ccall_ getenv name `thenPrimIO` \ litstring ->
+ if litstring /= ``NULL'' then
+ return (_unpackPS (_packCString litstring)) -- cheaper than it looks
+ else
+ failWith (NoSuchThing ("environment variable: " ++ name))
+\end{code}
+
+Computation $getEnv var$ returns the value
+of the environment variable {\em var}.
+
+This computation may fail with
+\begin{itemize}
+\item $NoSuchThing$
+The environment variable does not exist.
+\end{itemize}
+
+\begin{code}
+system :: String -> IO ExitCode
+system "" = failWith (InvalidArgument "null command")
+system cmd =
+ _ccall_ systemCmd cmd `thenPrimIO` \ status ->
+ case status of
+ 0 -> return ExitSuccess
+ -1 -> _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+ n -> return (ExitFailure n)
+\end{code}
+
+Computation $system cmd$ returns the exit code
+produced when the operating system processes the command {\em cmd}.
+
+This computation may fail with
+\begin{itemize}
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+\item $UnsupportedOperation$
+The implementation does not support system calls.
+\end{itemize}
+
+\begin{code}
+exitWith :: ExitCode -> IO a
+exitWith ExitSuccess =
+ _ccall_ EXIT (0::Int) `thenPrimIO` \ () ->
+ failWith (OtherError13 "exit should not return")
+
+exitWith (ExitFailure n)
+ | n == 0 = failWith (InvalidArgument "ExitFailure 0")
+ | otherwise =
+ _ccall_ EXIT n `thenPrimIO` \ () ->
+ failWith (OtherError13 "exit should not return")
+\end{code}
+
+Computation $exitWith code$ terminates the
+program, returning {\em code} to the program's caller.
+Before it terminates, any open or semi-closed handles are first closed.
+
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mc.hi b/ghc/lib/haskell-1.3/LibSystem_mc.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mc.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mg.hi b/ghc/lib/haskell-1.3/LibSystem_mg.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mg.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mp.hi b/ghc/lib/haskell-1.3/LibSystem_mp.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mp.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mr.hi b/ghc/lib/haskell-1.3/LibSystem_mr.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mr.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mt.hi b/ghc/lib/haskell-1.3/LibSystem_mt.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mt.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_p.hi b/ghc/lib/haskell-1.3/LibSystem_p.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_p.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_t.hi b/ghc/lib/haskell-1.3/LibSystem_t.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_t.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime.hi b/ghc/lib/haskell-1.3/LibTime.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime.lhs b/ghc/lib/haskell-1.3/LibTime.lhs
new file mode 100644
index 0000000000..36b2b287b5
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime.lhs
@@ -0,0 +1,232 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibTime]{Haskell 1.3 Time of Day Library}
+
+The {\em LibTime} library provides the functionality of "time.h",
+adapted to the Haskell environment. It includes timezone information,
+as in System V, and follows RFC 1129 in its use of Coordinated
+Universal Time (UTC).
+
+\begin{code}
+module LibTime (
+ CalendarTime(..),
+ ClockTime,
+ TimeDiff(..),
+ addToClockTime,
+ diffClockTimes,
+ getClockTime,
+ toCalendarTime,
+ toUTCTime,
+ toClockTime
+ ) where
+
+import PreludeIOError
+import PreludeGlaST
+import PS
+
+\end{code}
+
+$ClockTime$ is an abstract type, used for the internal clock time.
+Clock times may be compared, converted to strings, or converted to an
+external calendar time $CalendarTime$.
+
+\begin{code}
+data ClockTime = TOD Integer Integer
+ deriving (Eq, Ord)
+\end{code}
+
+When a $ClockTime$ is shown, it is converted to a string of the form
+$"Mon Nov 28 21:45:41 GMT 1994"$.
+
+For now, we are restricted to roughly:
+Fri Dec 13 20:45:52 1901 through Tue Jan 19 03:14:07 2038, because
+we use the C library routines based on 32 bit integers.
+
+\begin{code}
+instance Text ClockTime where
+ showsPrec p (TOD sec@(J# a# s# d#) nsec) =
+ showString (unsafePerformPrimIO (
+ _ccall_ showTime (I# s#) (_ByteArray (error "ClockTime.show") d#)
+ `thenPrimIO` \ str ->
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ ps ->
+ returnPrimIO (_unpackPS ps)))
+\end{code}
+
+
+$CalendarTime$ is a user-readable and manipulable
+representation of the internal $ClockTime$ type. The
+numeric fields have the following ranges.
+
+\begin{verbatim}
+Value Range Comments
+----- ----- --------
+
+year -maxInt .. maxInt [Pre-Gregorian dates are inaccurate]
+mon 0 .. 11 [Jan = 0, Dec = 11]
+day 1 .. 31
+hour 0 .. 23
+min 0 .. 59
+sec 0 .. 61 [Allows for two leap seconds]
+picosec 0 .. (10^12)-1 [This could be over-precise?]
+wday 0 .. 6 [Sunday = 0, Saturday = 6]
+yday 0 .. 365 [364 in non-Leap years]
+tz -43200 .. 43200 [Variation from UTC in seconds]
+\end{verbatim}
+
+The {\em tzname} field is the name of the time zone. The {\em isdst}
+field indicates whether Daylight Savings Time would be in effect.
+
+\begin{code}
+-- year mon day hour min sec picosec wday yday tzname tz isdst
+data CalendarTime =
+ CalendarTime Int Int Int Int Int Int Integer Int Int String Int Bool
+\end{code}
+
+The $TimeDiff$ type records the difference between two clock times in
+a user-readable way.
+
+\begin{code}
+-- year mon day hour min sec picosec
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+ deriving (Eq,Ord)
+\end{code}
+
+$getClockTime$ returns the current time in its internal representation.
+
+\begin{code}
+getClockTime :: IO ClockTime
+getClockTime =
+ malloc1 `thenStrictlyST` \ i1 ->
+ malloc1 `thenStrictlyST` \ i2 ->
+ _ccall_ getClockTime i1 i2 `thenPrimIO` \ rc ->
+ if rc == 0 then
+ cvtUnsigned i1 `thenStrictlyST` \ sec ->
+ cvtUnsigned i2 `thenStrictlyST` \ nsec ->
+ return (TOD sec (nsec * 1000))
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+ where
+ malloc1 (S# s#) =
+ case newIntArray# 1# s# of
+ StateAndMutableByteArray# s2# barr# -> (_MutableByteArray bot barr#, S# s2#)
+ bot = error "getClockTime"
+
+ -- The C routine fills in an unsigned word. We don't have `unsigned2Integer#,'
+ -- so we freeze the data bits and use them for an MP_INT structure. Note that
+ -- zero is still handled specially, although (J# 1# 1# (ptr to 0#)) is probably
+ -- acceptable to gmp.
+
+ cvtUnsigned (_MutableByteArray _ arr#) (S# s#) =
+ case readIntArray# arr# 0# s# of
+ StateAndInt# s2# r# ->
+ if r# ==# 0# then
+ (0, S# s2#)
+ else
+ case unsafeFreezeByteArray# arr# s2# of
+ StateAndByteArray# s3# frozen# -> (J# 1# 1# frozen#, S# s3#)
+
+\end{code}
+
+$addToClockTime$ {\em d} {\em t} adds a time difference {\em d} and a
+clock time {\em t} to yield a new clock time. The difference {\em d}
+may be either positive or negative. $diffClockTimes$ {\em t1} {\em
+t2} returns the difference between two clock times {\em t1} and {\em
+t2} as a $TimeDiff$.
+
+
+\begin{code}
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+addToClockTime _ _ = error "addToClockTime unimplemented"
+
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+diffClockTimes _ _ = error "diffClockTimes unimplemented"
+\end{code}
+
+$toCalendarTime$ {\em t} converts {\em t} to a local time, modified by
+the current timezone and daylight savings time settings. $toUTCTime$
+{\em t} converts {\em t} into UTC time. $toClockTime$ {\em l}
+converts {\em l} into the corresponding internal $ClockTime$. The
+{\em wday}, {\em yday}, {\em tzname}, and {\em isdst} fields are
+ignored.
+
+\begin{code}
+toCalendarTime :: ClockTime -> CalendarTime
+toCalendarTime (TOD sec@(J# a# s# d#) psec) = unsafePerformPrimIO (
+ _ccall_ toLocalTime (I# s#) (_ByteArray (error "toCalendarTime") d#)
+ `thenPrimIO` \ tm ->
+ if tm == (``NULL''::_Addr) then
+ error "toCalendarTime{LibTime}: out of range"
+ else
+ _casm_ ``%r = ((struct tm *)%0)->tm_sec;'' tm
+ `thenPrimIO` \ sec ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_min;'' tm
+ `thenPrimIO` \ min ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_hour;'' tm
+ `thenPrimIO` \ hour ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mday;'' tm
+ `thenPrimIO` \ mday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mon;'' tm
+ `thenPrimIO` \ mon ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_year;'' tm
+ `thenPrimIO` \ year ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_wday;'' tm
+ `thenPrimIO` \ wday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_yday;'' tm
+ `thenPrimIO` \ yday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_isdst;'' tm
+ `thenPrimIO` \ isdst ->
+ _ccall_ ZONE tm `thenPrimIO` \ zone ->
+ _ccall_ GMTOFF tm `thenPrimIO` \ tz ->
+ _ccall_ strlen zone `thenPrimIO` \ len ->
+ _packCBytesST len zone `thenStrictlyST` \ tzname ->
+ returnPrimIO (CalendarTime (1900+year) mon mday hour min sec psec
+ wday yday (_unpackPS tzname) tz (isdst /= 0))
+ )
+
+toUTCTime :: ClockTime -> CalendarTime
+toUTCTime (TOD sec@(J# a# s# d#) psec) = unsafePerformPrimIO (
+ _ccall_ toUTCTime (I# s#) (_ByteArray (error "toCalendarTime") d#)
+ `thenPrimIO` \ tm ->
+ if tm == (``NULL''::_Addr) then
+ error "toUTCTime{LibTime}: out of range"
+ else
+ _casm_ ``%r = ((struct tm *)%0)->tm_sec;'' tm
+ `thenPrimIO` \ sec ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_min;'' tm
+ `thenPrimIO` \ min ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_hour;'' tm
+ `thenPrimIO` \ hour ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mday;'' tm
+ `thenPrimIO` \ mday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mon;'' tm
+ `thenPrimIO` \ mon ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_year;'' tm
+ `thenPrimIO` \ year ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_wday;'' tm
+ `thenPrimIO` \ wday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_yday;'' tm
+ `thenPrimIO` \ yday ->
+ returnPrimIO (CalendarTime (1900+year) mon mday hour min sec psec
+ wday yday "UTC" 0 False)
+ )
+
+toClockTime :: CalendarTime -> ClockTime
+toClockTime (CalendarTime year mon mday hour min sec psec wday yday tzname tz isdst) =
+ if psec < 0 || psec > 999999999999 then
+ error "toClockTime{LibTime}: picoseconds out of range"
+ else if tz < -43200 || tz > 43200 then
+ error "toClockTime{LibTime}: timezone offset out of range"
+ else
+ unsafePerformPrimIO (
+ _ccall_ toClockSec year mon mday hour min sec tz
+ `thenPrimIO` \ ptr@(A# ptr#) ->
+ if ptr /= ``NULL'' then
+ returnPrimIO (TOD (int2Integer# (indexIntOffAddr# ptr# 0#)) psec)
+ else
+ error "toClockTime{LibTime}: can't perform conversion"
+ )
+\end{code}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mc.hi b/ghc/lib/haskell-1.3/LibTime_mc.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mc.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mg.hi b/ghc/lib/haskell-1.3/LibTime_mg.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mg.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mp.hi b/ghc/lib/haskell-1.3/LibTime_mp.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mp.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mr.hi b/ghc/lib/haskell-1.3/LibTime_mr.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mr.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mt.hi b/ghc/lib/haskell-1.3/LibTime_mt.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mt.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_p.hi b/ghc/lib/haskell-1.3/LibTime_p.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_p.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_t.hi b/ghc/lib/haskell-1.3/LibTime_t.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_t.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra.hi b/ghc/lib/hbc/Algebra.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra.hs b/ghc/lib/hbc/Algebra.hs
new file mode 100644
index 0000000000..4505287efe
--- /dev/null
+++ b/ghc/lib/hbc/Algebra.hs
@@ -0,0 +1,145 @@
+module Algebra where
+infixl 6 +. , -.
+infixl 7 *. , /.
+
+--
+-- (x::A)->B is dependant functions
+-- (x = y) A is equality in type A
+--
+
+-- For simplicity we may require decidable equality on the elements.
+class {-(Eq a) =>-} SemiGroup a where
+ (+.) :: a->a->a
+-- assocAdd :: (x::a)->(y::a)->(z::a)->
+-- ((a+.b)+.c = a+.(b+.c)) a
+
+class (SemiGroup a) => Monoid a where
+ zero :: a
+-- leftZero :: (x::a) -> (zero +. x = x) a
+
+class (Monoid a) => Group a where
+ neg :: a->a
+ (-.) :: a->a->a
+ x -. y = x +. neg y
+-- leftNeg :: (x::a) -> (neg x +. x = zero) a
+
+class (Group a) => AbelianGroup a
+-- commAdd :: (x::a)->(y::a)-> (x+.y = y+.x) a
+
+class (AbelianGroup a) => Ring a where
+ (*.) :: a->a->a
+-- assocMul :: (x::a)->(y::a)->(z::a)->
+-- ((a*.b)*.c = a*.(b*.c)) a
+-- distrRingL :: (x::a)->(y::a)->(z::a)->
+-- (x*.(y+.z) = x*.y +. x*.z)
+-- distrRingR :: (x::a)->(y::a)->(z::a)->
+-- ((y+.z)*.x = y*.x +. z*.x)
+
+class (Ring a) => UnityRing a where
+ one :: a
+-- leftOne :: (x::a)->(one *. x = x) a
+-- rightOne :: (x::a)->(x *. one = x) a
+
+class (Ring a) => CommutativeRing a
+-- commMul :: (x::a)->(y::a)-> (x*.y = y*.x) a
+
+class (CommutativeRing a, UnityRing a) => IntegralDomain a
+-- noZeroDiv :: (x::a)->(y::a)-> ( (x*.y = zero) a -> Either ((x=zero) a) ((y=zero) a) )
+
+class (UnityRing a) => DivisionRing a where
+ inv :: a->a
+ (/.) :: a->a->a
+ x /. y = x *. inv y
+-- leftinv :: (x::a) -> (inv x *. x = one) a
+
+class (DivisionRing a, CommutativeRing a) => Field a
+
+-- Every finite integral domain is a field.
+
+-- Unique Factorization Domain
+class (IntegralDomain a) => UFD a
+-- every non-zero element has a unique factorization
+
+-- Principal Ideal Domain
+class (IntegralDomain a) => PID a
+-- every ideal is a principal ideal
+
+---------------------------------------------------
+
+-- [a] --
+instance SemiGroup [a] where
+ (+.) = (++)
+instance Monoid [a] where
+ zero = []
+
+-- Bool --
+instance SemiGroup Bool where
+ (+.) = (||)
+instance Monoid Bool where
+ zero = False
+instance Group Bool where
+ neg = not
+instance AbelianGroup Bool
+instance Ring Bool where
+ (*.) = (&&)
+instance CommutativeRing Bool
+instance UnityRing Bool where
+ one = True
+instance DivisionRing Bool where
+ inv x = x
+
+-- Int --
+instance SemiGroup Int where
+ (+.) = (+)
+instance Monoid Int where
+ zero = 0
+instance Group Int where
+ neg = negate
+instance AbelianGroup Int
+instance Ring Int where
+ (*.) = (*)
+instance CommutativeRing Int
+instance UnityRing Int where
+ one = 1
+
+-- Integer --
+instance SemiGroup Integer where
+ (+.) = (+)
+instance Monoid Integer where
+ zero = 0
+instance Group Integer where
+ neg = negate
+instance AbelianGroup Integer
+instance Ring Integer where
+ (*.) = (*)
+instance CommutativeRing Integer
+instance UnityRing Integer where
+ one = 1
+instance IntegralDomain Integer
+
+-- Q --
+-- A new data tupe is needed to do the instance declarations
+data Q = Q Rational {-#STRICT#-} deriving (Eq, Ord)
+instance Text Q where
+#if defined(__HBC__)
+ -- not standard
+ showsType _ = showString "Q"
+#endif
+ showsPrec n (Q p) = showsPrec n p
+instance SemiGroup Q where
+ Q a +. Q b = Q (a+b)
+instance Monoid Q where
+ zero = Q 0
+instance Group Q where
+ neg (Q a) = Q (-a)
+instance AbelianGroup Q
+instance Ring Q where
+ Q a *. Q b = Q (a*b)
+instance CommutativeRing Q
+instance UnityRing Q where
+ one = Q 1
+instance IntegralDomain Q
+instance DivisionRing Q where
+ inv (Q x) = Q (recip x)
+instance Field Q
+
diff --git a/ghc/lib/hbc/Algebra_mc.hi b/ghc/lib/hbc/Algebra_mc.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_mc.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra_mg.hi b/ghc/lib/hbc/Algebra_mg.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_mg.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra_mp.hi b/ghc/lib/hbc/Algebra_mp.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_mp.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra_mr.hi b/ghc/lib/hbc/Algebra_mr.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_mr.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra_mt.hi b/ghc/lib/hbc/Algebra_mt.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_mt.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra_p.hi b/ghc/lib/hbc/Algebra_p.hi
new file mode 100644
index 0000000000..e8097b5662
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_p.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _scc_ { _ALL_DICTS_CC_ "Algebra" "Prelude" _N_ } _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _scc_ { _ALL_DICTS_CC_ "Algebra" "Prelude" _N_ } _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 9 \ (u0 :: Bool) (u1 :: Bool) -> let {(u2 :: Bool) = case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }} in _scc_ { _ALL_DICTS_CC_ "Algebra" "Prelude" _N_ } case u0 of { _ALG_ True -> _!_ True [] []; False -> u2; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Algebra_t.hi b/ghc/lib/hbc/Algebra_t.hi
new file mode 100644
index 0000000000..38788abfbb
--- /dev/null
+++ b/ghc/lib/hbc/Algebra_t.hi
@@ -0,0 +1,162 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Algebra where
+import PreludeRatio(Ratio(..))
+infixl 7 *.
+infixl 6 +.
+infixl 6 -.
+infixl 7 /.
+class (Group a) => AbelianGroup a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LLL)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Group u0}}) -> u1 _N_ #-}
+class (Ring a) => CommutativeRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{AbelianGroup u0}}) (u2 :: u0 -> u0 -> u0) -> _!_ _TUP_2 [{{AbelianGroup u0}}, (u0 -> u0 -> u0)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_ #-}
+class (UnityRing a) => DivisionRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{Ring u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ inv :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.DivisionRing.inv\"", u2 ] _N_ #-}
+ (/.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{UnityRing u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{UnityRing u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 CXXX 7 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> case u1 of { _ALG_ _TUP_2 (u5 :: {{AbelianGroup u0}}) (u6 :: u0 -> u0 -> u0) -> let {(u7 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u6 [ u3, u7 ]; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{DivisionRing u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{UnityRing u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{Ring u0}}) (u8 :: u0) -> case u7 of { _ALG_ _TUP_2 (u9 :: {{AbelianGroup u0}}) (ua :: u0 -> u0 -> u0) -> let {(ub :: u0) = _APP_ u5 [ u3 ]} in _APP_ ua [ u2, ub ]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (DivisionRing a, CommutativeRing a) => Field a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{UnityRing u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{DivisionRing u0}}, {{CommutativeRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{DivisionRing u0}}) (u3 :: {{CommutativeRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (Monoid a) => Group a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) -> _!_ _TUP_2 [{{SemiGroup u0}}, u0] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ neg :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Group.neg\"", u2 ] _N_ #-}
+ (-.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Monoid u0}}, u0 -> u0, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Monoid u0}}) (u3 :: u0 -> u0) (u4 :: u0 -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Group u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_3 (u4 :: {{Monoid u0}}) (u5 :: u0 -> u0) (u6 :: u0 -> u0 -> u0) -> case u4 of { _ALG_ _TUP_2 (u7 :: {{SemiGroup u0}}) (u8 :: u0) -> let {(u9 :: u0) = _APP_ u5 [ u3 ]} in _APP_ u7 [ u2, u9 ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+class (CommutativeRing a, UnityRing a) => IntegralDomain a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{CommutativeRing u0}}, {{UnityRing u0}})) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{CommutativeRing u0}}) (u3 :: {{UnityRing u0}}) -> u3; _NO_DEFLT_ } _N_ #-}
+class (SemiGroup a) => Monoid a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ zero :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{SemiGroup u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{SemiGroup u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.Monoid.zero\"" ] _N_ #-}
+class (IntegralDomain a) => PID a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (AbelianGroup a) => Ring a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)A)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Monoid u0}}) (u2 :: u0 -> u0) (u3 :: u0 -> u0 -> u0) -> _!_ _TUP_3 [{{Monoid u0}}, (u0 -> u0), (u0 -> u0 -> u0)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (*.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{AbelianGroup u0}}, u0 -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{AbelianGroup u0}}) (u3 :: u0 -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ring u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.Ring.(*.)\"", u2, u3 ] _N_ #-}
+class SemiGroup a where
+ (+.) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{SemiGroup u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DAlgebra.SemiGroup.(+.)\"", u2, u3 ] _N_ #-}
+class (IntegralDomain a) => UFD a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{CommutativeRing u0}}) (u2 :: {{UnityRing u0}}) -> _!_ _TUP_2 [{{CommutativeRing u0}}, {{UnityRing u0}}] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{IntegralDomain u0}}) -> u1 _N_ #-}
+class (Ring a) => UnityRing a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ring u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ one :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ring u0}}, u0)) -> case u1 of { _ALG_ _TUP_2 (u2 :: {{Ring u0}}) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{UnityRing u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DAlgebra.UnityRing.one\"" ] _N_ #-}
+data Q = Q (Ratio Integer)
+instance AbelianGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_ #-}
+instance AbelianGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_ #-}
+instance AbelianGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_ #-}
+instance AbelianGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_ #-}
+instance CommutativeRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_ #-}
+instance CommutativeRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_ #-}
+instance CommutativeRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_ #-}
+instance CommutativeRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_ #-}
+instance DivisionRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ UnityRing (Q), _CONSTM_ DivisionRing inv (Q), _CONSTM_ DivisionRing (/.) (Q)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance DivisionRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{UnityRing Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ UnityRing (Bool), _CONSTM_ DivisionRing inv (Bool), _CONSTM_ DivisionRing (/.) (Bool)] _N_
+ inv = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Bool) -> u0 _N_,
+ (/.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Field Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{DivisionRing Q}}, {{CommutativeRing Q}}] [_DFUN_ DivisionRing (Q), _DFUN_ CommutativeRing (Q)] _N_ #-}
+instance Group Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Q}}, (Q -> Q), (Q -> Q -> Q)] [_DFUN_ Monoid (Q), _CONSTM_ Group neg (Q), _CONSTM_ Group (-.) (Q)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "U(L)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Group Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Bool}}, (Bool -> Bool), (Bool -> Bool -> Bool)] [_DFUN_ Monoid (Bool), _ORIG_ Prelude not, _CONSTM_ Group (-.) (Bool)] _N_
+ neg = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Int}}, (Int -> Int), (Int -> Int -> Int)] [_DFUN_ Monoid (Int), _CONSTM_ Num negate (Int), _CONSTM_ Group (-.) (Int)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Int) _N_,
+ (-.) = _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ negateInt# [] [u3] of { _PRIM_ (u4 :: Int#) -> case _#_ plusInt# [] [u2, u4] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Group Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Monoid Integer}}, (Integer -> Integer), (Integer -> Integer -> Integer)] [_DFUN_ Monoid (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Group (-.) (Integer)] _N_
+ neg = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num negate (Integer) _N_,
+ (-.) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance IntegralDomain Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Q}}, {{UnityRing Q}}] [_DFUN_ CommutativeRing (Q), _DFUN_ UnityRing (Q)] _N_ #-}
+instance IntegralDomain Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{CommutativeRing Integer}}, {{UnityRing Integer}}] [_DFUN_ CommutativeRing (Integer), _DFUN_ UnityRing (Integer)] _N_ #-}
+instance Monoid Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Q}}, Q] [_CONSTM_ SemiGroup (+.) (Q), _CONSTM_ Monoid zero (Q)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Monoid Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Bool}}, Bool] [_ORIG_ Prelude (||), _CONSTM_ Monoid zero (Bool)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ False [] [] _N_ #-}
+instance Monoid Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Int}}, Int] [_CONSTM_ Num (+) (Int), _CONSTM_ Monoid zero (Int)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+instance Monoid Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{SemiGroup Integer}}, Integer] [_CONSTM_ Num (+) (Integer), _CONSTM_ Monoid zero (Integer)] _N_
+ zero = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+instance Monoid [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Ring Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Q}}, (Q -> Q -> Q)] [_DFUN_ AbelianGroup (Q), _CONSTM_ Ring (*.) (Q)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ring Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Bool}}, (Bool -> Bool -> Bool)] [_DFUN_ AbelianGroup (Bool), _ORIG_ Prelude (&&)] _N_
+ (*.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+instance Ring Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Int}}, (Int -> Int -> Int)] [_DFUN_ AbelianGroup (Int), _CONSTM_ Num (*) (Int)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Int) _N_ #-}
+instance Ring Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{AbelianGroup Integer}}, (Integer -> Integer -> Integer)] [_DFUN_ AbelianGroup (Integer), _CONSTM_ Num (*) (Integer)] _N_
+ (*.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (*) (Integer) _N_ #-}
+instance SemiGroup Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ SemiGroup (+.) (Q) _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "U(L)U(L)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance SemiGroup Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_
+ (+.) = _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance SemiGroup Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Int) _N_ #-}
+instance SemiGroup Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_
+ (+.) = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Num (+) (Integer) _N_ #-}
+instance SemiGroup [a]
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeList (++) _N_ #-}
+instance UnityRing Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Q}}, Q] [_DFUN_ Ring (Q), _CONSTM_ UnityRing one (Q)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance UnityRing Bool
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Bool}}, Bool] [_DFUN_ Ring (Bool), _CONSTM_ UnityRing one (Bool)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ True [] [] _N_ #-}
+instance UnityRing Int
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Int}}, Int] [_DFUN_ Ring (Int), _CONSTM_ UnityRing one (Int)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+instance UnityRing Integer
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [{{Ring Integer}}, Integer] [_DFUN_ Ring (Integer), _CONSTM_ UnityRing one (Integer)] _N_
+ one = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+instance Eq Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Q -> Q -> Bool), (Q -> Q -> Bool)] [_CONSTM_ Eq (==) (Q), _CONSTM_ Eq (/=) (Q)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)L))U(U(U(PPP)L))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Q}}, (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Bool), (Q -> Q -> Q), (Q -> Q -> Q), (Q -> Q -> _CMP_TAG)] [_DFUN_ Eq (Q), _CONSTM_ Ord (<) (Q), _CONSTM_ Ord (<=) (Q), _CONSTM_ Ord (>=) (Q), _CONSTM_ Ord (>) (Q), _CONSTM_ Ord max (Q), _CONSTM_ Ord min (Q), _CONSTM_ Ord _tagCmp (Q)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(U(PPP)U(PPP)))U(U(U(PPP)U(PPP)))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Q
+ {-# GHC_PRAGMA _M_ Algebra {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Q, [Char])]), (Int -> Q -> [Char] -> [Char]), ([Char] -> [([Q], [Char])]), ([Q] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Q), _CONSTM_ Text showsPrec (Q), _CONSTM_ Text readList (Q), _CONSTM_ Text showList (Q)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Q, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(U(LL))" {_A_ 3 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash.hi b/ghc/lib/hbc/Hash.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash.hs b/ghc/lib/hbc/Hash.hs
new file mode 100644
index 0000000000..d09e8a5cbf
--- /dev/null
+++ b/ghc/lib/hbc/Hash.hs
@@ -0,0 +1,100 @@
+module Hash where
+--
+-- Hash a value. Hashing produces an Int of
+-- unspecified range.
+--
+
+class Hashable a where
+ hash :: a -> Int
+
+instance Hashable Char where
+ hash x = ord x
+
+instance Hashable Int where
+ hash x = x
+
+instance Hashable Integer where
+ hash x = fromInteger x
+
+instance Hashable Float where
+ hash x = truncate x
+
+instance Hashable Double where
+ hash x = truncate x
+
+instance Hashable Bin where
+ hash x = 0
+
+#if defined(__HBC__)
+instance Hashable File where
+ hash x = 0
+#endif
+
+instance Hashable () where
+ hash x = 0
+
+instance Hashable (a -> b) where
+ hash x = 0
+
+instance Hashable a => Hashable [a] where
+ hash l = f l 0
+ where f :: (Hashable a) => [a] -> Int -> Int
+ f [] r = r
+ f (c:cs) r = f cs (3*r + hash c)
+
+#if defined(__OVERLAPPING_INSTANCES__)
+instance Hashable [Char] where
+ hash l = f l 0
+ where f :: String -> Int -> Int
+ f [] r = r
+ f (c:cs) r = f cs (3*r + ord c)
+#endif
+
+instance (Hashable a, Hashable b) => Hashable (a,b) where
+ hash (a,b) = hash a + 3 * hash b
+
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a,b,c) where
+ hash (a,b,c) = hash a + 3 * hash b + 5 * hash c
+
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a,b,c,d) where
+ hash (a,b,c,d) = hash a + 3 * hash b + 5 * hash c + 7 * hash d
+
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a,b,c,d,e) where
+ hash (a,b,c,d,e) = hash a + 3 * hash b + 5 * hash c + 7 * hash d + 9 * hash e
+
+instance Hashable Bool where
+ hash False = 0
+ hash True = 1
+
+instance (Integral a, Hashable a) => Hashable (Ratio a) where
+ hash x = hash (denominator x) + hash (numerator x)
+
+instance (RealFloat a, Hashable a) => Hashable (Complex a) where
+ hash (x :+ y) = hash x + hash y
+
+#if __HASKELL1__ < 3
+instance (Hashable a, Hashable b) => Hashable (Assoc a b) where
+ hash (x := y) = hash x + hash y
+#endif
+
+instance (Ix a) => Hashable (Array a b) where
+ hash x = 0 -- !!!
+
+#if __HASKELL1__ < 3
+instance Hashable Request where
+ hash x = 0 -- !!
+
+instance Hashable Response where
+ hash x = 0 -- !!
+
+instance Hashable IOError where
+ hash x = 0 -- !!
+#endif
+
+
+hashToMax maxhash x =
+ let h = hash x
+ in if h < 0 then
+ if -h < 0 then 0
+ else (-h) `rem` maxhash
+ else h `rem` maxhash
diff --git a/ghc/lib/hbc/Hash_mc.hi b/ghc/lib/hbc/Hash_mc.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_mc.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash_mg.hi b/ghc/lib/hbc/Hash_mg.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_mg.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash_mp.hi b/ghc/lib/hbc/Hash_mp.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_mp.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash_mr.hi b/ghc/lib/hbc/Hash_mr.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_mr.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash_mt.hi b/ghc/lib/hbc/Hash_mt.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_mt.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash_p.hi b/ghc/lib/hbc/Hash_p.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_p.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Hash_t.hi b/ghc/lib/hbc/Hash_t.hi
new file mode 100644
index 0000000000..18a856b4c5
--- /dev/null
+++ b/ghc/lib/hbc/Hash_t.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Hash where
+import PreludeArray(Array, Assoc)
+import PreludeComplex(Complex)
+import PreludeIO(IOError, Request, Response)
+import PreludeRatio(Ratio(..))
+class Hashable a where
+ hash :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Hashable u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DHash.Hashable.hash\"", u2 ] _N_ #-}
+hashToMax :: Hashable a => Int -> a -> Int
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+instance Hashable ()
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (()) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: ()) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (a, b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c) => Hashable (a, b, c)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 4 _U_ 222 _N_ _S_ "SSSU(LLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 5 _U_ 2222 _N_ _S_ "SSSSU(LLLL)" _N_ _N_ #-}
+instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 6 _U_ 22222 _N_ _S_ "SSSSSU(LLLLL)" _N_ _N_ #-}
+instance Hashable (a -> b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 1 X 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) -> _!_ I# [] [0#] _N_ #-}
+instance Ix a => Hashable (Array a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) -> _!_ I# [] [0#] _N_ #-}
+instance (Hashable a, Hashable b) => Hashable (Assoc a b)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "SSS" _N_ _N_ #-}
+instance Hashable Bin
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bin) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Bin) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Bool
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Bool) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: Bool) -> case u0 of { _ALG_ False -> _!_ I# [] [0#]; True -> _!_ I# [] [1#]; _NO_DEFLT_ } _N_ #-}
+instance Hashable Char
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Char) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance (RealFloat a, Hashable a) => Hashable (Complex a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSS" _N_ _N_ #-}
+instance Hashable Double
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable Float
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ hash = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Hashable IOError
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (IOError) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: IOError) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Int
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Int) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Hashable Integer
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Integer) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance (Integral a, Hashable a) => Hashable (Ratio a)
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 3 _U_ 22 _N_ _S_ "LSL" _N_ _N_ #-}
+instance Hashable Request
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Request) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Request) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable Response
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash (Response) _N_
+ hash = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Response) -> _!_ I# [] [0#] _N_ #-}
+instance Hashable a => Hashable [a]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 2 _U_ 2 _N_ _S_ "LS" _N_ _N_ #-}
+instance Hashable [Char]
+ {-# GHC_PRAGMA _M_ Hash {-dfun-} _A_ 1 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Hashable hash ([Char]) _N_
+ hash = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil.hi b/ghc/lib/hbc/ListUtil.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil.hs b/ghc/lib/hbc/ListUtil.hs
new file mode 100644
index 0000000000..985e3fce75
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil.hs
@@ -0,0 +1,109 @@
+#if __HASKELL1__ < 3
+module ListUtil(assoc, concatMap, unfoldr, mapAccuml, union, intersection, chopList, assocDef, lookup, Maybe..,
+ rept, tails, groupEq, group, readListLazily, nubEq, elemEq) where
+import {-flummox mkdependHS-}
+ Maybe
+#else
+module ListUtil(assoc, concatMap, unfoldr, mapAccuml, union, intersection, chopList, assocDef, lookup, -- Maybe..,
+ rept, tails, groupEq, group, readListLazily, nubEq, elemEq) where
+--import Maybe
+#endif
+
+-- Lookup an item in an association list. Apply a function to it if it is found, otherwise return a default value.
+assoc :: (Eq c) => (a -> b) -> b -> [(c, a)] -> c -> b
+assoc f d [] x = d
+assoc f d ((x',y):xys) x | x' == x = f y
+ | otherwise = assoc f d xys x
+
+-- Map and concatename results.
+concatMap :: (a -> [b]) -> [a] -> [b]
+concatMap f [] = []
+concatMap f (x:xs) =
+ case f x of
+ [] -> concatMap f xs
+ ys -> ys ++ concatMap f xs
+
+-- Repeatedly extract (and transform) values until a predicate hold. Return the list of values.
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+unfoldr f p x | p x = []
+ | otherwise = y:unfoldr f p x'
+ where (y, x') = f x
+
+-- Map, but plumb a state through the map operation.
+mapAccuml :: (a -> b -> (a, c)) -> a -> [b] -> (a, [c])
+mapAccuml f s [] = (s, [])
+mapAccuml f s (x:xs) = (s'', y:ys)
+ where (s', y) = f s x
+ (s'', ys) = mapAccuml f s' xs
+
+-- Union of sets as lists.
+union :: (Eq a) => [a] -> [a] -> [a]
+union xs ys = xs ++ (ys \\ xs)
+
+-- Intersection of sets as lists.
+intersection :: (Eq a) => [a] -> [a] -> [a]
+intersection xs ys = [x | x<-xs, x `elem` ys]
+
+--- Functions derived from those above
+
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+chopList f l = unfoldr f null l
+
+assocDef :: (Eq a) => [(a, b)] -> b -> a -> b
+--assocDef l d x = assoc id d l x
+assocDef [] d _ = d
+assocDef ((x,y):xys) d x' = if x == x' then y else assocDef xys d x'
+
+lookup :: (Eq a) => [(a, b)] -> a -> Maybe b
+--lookup l x = assoc Just Nothing l x
+lookup [] _ = Nothing
+lookup ((x,y):xys) x' = if x == x' then Just y else lookup xys x'
+
+-- Repeat an element n times
+rept :: (Integral a) => a -> b -> [b]
+rept n x = irept (fromIntegral n) x
+ where irept :: Int -> a -> [a]
+ irept n x = if n <= 0 then [] else x : irept (n-1) x
+
+-- Take all the tails
+tails :: [a] -> [[a]]
+tails [] = []
+tails xxs@(_:xs) = xxs : tails xs
+
+-- group list elements according to an equality predicate
+groupEq :: (a->a->Bool) -> [a] -> [[a]]
+groupEq eq xs = chopList f xs
+ where f xs@(x:_) = span (eq x) xs
+
+group :: (Eq a) => [a] -> [[a]]
+group xs = groupEq (==) xs
+
+-- Read a list lazily (in contrast with reads which requires
+-- to see the ']' before returning the list.
+readListLazily :: (Text a) => String -> [a]
+readListLazily cs =
+ case lex cs of
+ [("[",cs)] -> readl' cs
+ _ -> error "No leading '['"
+ where readl' cs =
+ case reads cs of
+ [(x,cs)] -> x : readl cs
+ [] -> error "No parse for list element"
+ _ -> error "Ambigous parse for list element"
+ readl cs =
+ case lex cs of
+ [("]",_)] -> []
+ [(",",cs)] -> readl' cs
+ _ -> error "No ',' or ']'"
+
+nubEq :: (a->a->Bool) -> [a] -> [a]
+nubEq eq l = nub' l []
+ where nub' [] _ = []
+ nub' (x:xs) l = if elemEq eq x l then nub' xs l else x : nub' xs (x:l)
+
+elemEq :: (a->a->Bool) -> a -> [a] -> Bool
+elemEq eq _ [] = False
+elemEq eq x (y:ys) = eq x y || elemEq eq x ys
+
+mapFst f xys = [(f x, y) | (x, y) <- xys]
+mapSnd f xys = [(x, f y) | (x, y) <- xys]
diff --git a/ghc/lib/hbc/ListUtil_mc.hi b/ghc/lib/hbc/ListUtil_mc.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_mc.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil_mg.hi b/ghc/lib/hbc/ListUtil_mg.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_mg.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil_mp.hi b/ghc/lib/hbc/ListUtil_mp.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_mp.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil_mr.hi b/ghc/lib/hbc/ListUtil_mr.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_mr.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil_mt.hi b/ghc/lib/hbc/ListUtil_mt.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_mt.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil_p.hi b/ghc/lib/hbc/ListUtil_p.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_p.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/ListUtil_t.hi b/ghc/lib/hbc/ListUtil_t.hi
new file mode 100644
index 0000000000..05034a4243
--- /dev/null
+++ b/ghc/lib/hbc/ListUtil_t.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ListUtil where
+import PreludeStdIO(Maybe)
+assoc :: Eq b => (a -> c) -> c -> [(b, a)] -> b -> c
+ {-# GHC_PRAGMA _A_ 1 _U_ 12212 _N_ _N_ _N_ _N_ #-}
+assocDef :: Eq a => [(a, b)] -> b -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1122 _N_ _N_ _N_ _N_ #-}
+chopList :: ([a] -> (b, [a])) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+concatMap :: (a -> [b]) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elemEq :: (a -> a -> Bool) -> a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+group :: Eq a => [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: [u0]) -> let {(u5 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ ListUtil groupEq { u0 } [ u5, u2 ] _N_ #-}
+groupEq :: (a -> a -> Bool) -> [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+intersection :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+lookup :: Eq a => [(a, b)] -> a -> Maybe b
+ {-# GHC_PRAGMA _A_ 1 _U_ 112 _N_ _N_ _N_ _N_ #-}
+mapAccuml :: (b -> a -> (b, c)) -> b -> [a] -> (b, [c])
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+nubEq :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+readListLazily :: Text a => [Char] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SLLL)S" {_A_ 5 _U_ 20002 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rept :: Integral a => a -> b -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+tails :: [a] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+unfoldr :: (a -> (b, a)) -> (a -> Bool) -> a -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSL" _N_ _N_ #-}
+union :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LSL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda.hi b/ghc/lib/hbc/Miranda.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda.hs b/ghc/lib/hbc/Miranda.hs
new file mode 100644
index 0000000000..2d863cedcc
--- /dev/null
+++ b/ghc/lib/hbc/Miranda.hs
@@ -0,0 +1,90 @@
+module Miranda(cjustify, lay, layn, limit, ljustify, merge, rep, rjustify, spaces,
+ {-force,seq,-}sort) where
+--import UnsafeDirty
+import QSort
+
+cjustify :: Int -> String -> String
+cjustify n s = spaces l ++ s ++ spaces r
+ where
+ m = n - length s
+ l = m `div` 2
+ r = m - l
+
+{-
+index :: [a] -> [Int]
+index xs = f xs 0
+ where f [] n = []
+ f (_:xs) n = n : f xs (n+1)
+-}
+
+lay :: [String] -> String
+lay = concat . map (++"\n")
+
+layn :: [String] -> String
+layn = concat . zipWith f [1..]
+ where
+ f :: Int -> String -> String
+ f n x = rjustify 4 (show n) ++ ") " ++ x ++ "\n"
+
+limit :: (Eq a) => [a] -> a
+limit (x:y:ys) | x == y = x
+ | otherwise = limit (y:ys)
+limit _ = error "Miranda.limit: bad use"
+
+ljustify :: Int -> String -> String
+ljustify n s = s ++ spaces (n - length s)
+
+merge :: (Ord a) => [a] -> [a] -> [a]
+merge [] ys = ys
+merge xs [] = xs
+merge xxs@(x:xs) yys@(y:ys) | x <= y = x : merge xs yys
+ | otherwise = y : merge xxs ys
+
+rep :: Int -> b -> [b]
+rep n x = take n (repeat x)
+
+rjustify :: Int -> String -> String
+rjustify n s = spaces (n - length s) ++ s
+
+spaces :: Int -> String
+spaces 0 = ""
+spaces n = ' ' : spaces (n-1)
+
+-------------
+
+arctan x = atan x
+code c = ord c
+converse f a b = flip f a b
+decode n = chr n
+digit c = isDigit c
+e :: (Floating a) => a
+e = exp 1
+entier x = floor x
+filemode f = error "Miranda.filemode"
+--getenv
+hd xs = head xs
+hugenum :: (Floating a) => a
+hugenum = error "hugenum" --!!!
+integer x = x == truncate x
+letter c = isAlpha c
+map2 f xs ys = zipWith f xs ys
+--max
+max2 x y = max x y
+member xs x = x `elem` xs
+--min
+min2 x y = min x y
+mkset xs = nub xs
+neg x = negate x
+numval :: (Num a) => String -> a
+numval cs = read cs
+postfix xs x = xs ++ [x]
+--read
+scan f z l = scanl f z l
+--shownum !!!
+--showfloat !!!
+--showscaled !!!
+tinynum :: (Floating a) => a
+tinynum = error "tinynum"
+undef = error "undefined"
+zip2 xs ys = zip xs ys
+--zip
diff --git a/ghc/lib/hbc/Miranda_mc.hi b/ghc/lib/hbc/Miranda_mc.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_mc.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda_mg.hi b/ghc/lib/hbc/Miranda_mg.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_mg.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda_mp.hi b/ghc/lib/hbc/Miranda_mp.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_mp.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda_mr.hi b/ghc/lib/hbc/Miranda_mr.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_mr.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda_mt.hi b/ghc/lib/hbc/Miranda_mt.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_mt.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda_p.hi b/ghc/lib/hbc/Miranda_p.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_p.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Miranda_t.hi b/ghc/lib/hbc/Miranda_t.hi
new file mode 100644
index 0000000000..4c61089c71
--- /dev/null
+++ b/ghc/lib/hbc/Miranda_t.hi
@@ -0,0 +1,24 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Miranda where
+import QSort(sort)
+cjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lay :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+layn :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+limit :: Eq a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ljustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
+merge :: Ord a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _N_ _N_ _N_ #-}
+rep :: Int -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rjustify :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+spaces :: Int -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply.hi b/ghc/lib/hbc/NameSupply.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply.hs b/ghc/lib/hbc/NameSupply.hs
new file mode 100644
index 0000000000..6d14d225b9
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply.hs
@@ -0,0 +1,67 @@
+module NameSupply(NameSupply, initialNameSupply, splitNameSupply, getName, listNameSupply, Name(..)
+#if defined(__YALE_HASKELL__)
+ , Symbol
+#endif
+ ) where
+
+#if defined(__YALE_HASKELL__)
+import Symbol
+type Name = Symbol
+
+#else
+# if defined(__GLASGOW_HASKELL__)
+import PreludeGlaST
+type Name = Int
+
+# else
+import LMLgensym
+type Name = Int
+# endif
+#endif
+
+data NameSupply = NameSupply Name NameSupply NameSupply
+
+splitNameSupply :: NameSupply -> (NameSupply,NameSupply)
+getName :: NameSupply -> Name
+listNameSupply :: NameSupply -> [NameSupply]
+
+#if defined(__YALE_HASKELL__)
+initialNameSupply :: IO NameSupply
+#else
+initialNameSupply :: NameSupply
+#endif
+
+#if defined(__GLASGOW_HASKELL__)
+initialNameSupply = unsafePerformPrimIO mk_supply# -- GHC-specific
+ where
+ mk_supply#
+ = unsafeInterleavePrimIO (_ccall_ genSymZh)
+ `thenPrimIO` \ u ->
+ unsafeInterleavePrimIO mk_supply# `thenPrimIO` \ s1 ->
+ unsafeInterleavePrimIO mk_supply# `thenPrimIO` \ s2 ->
+ returnPrimIO (NameSupply u s1 s2)
+#endif
+
+#if defined(__YALE_HASKELL__)
+initialNameSupply :: IO NameSupply
+initialNameSupply
+ = let
+ mk_supply =
+ unsafeInterleaveIO (genSymbol "NameSupply") >>= \ sym ->
+ unsafeInterleaveIO mk_supply >>= \ supply1 ->
+ unsafeInterleaveIO mk_supply >>= \ supply2 ->
+ return (NameSupply sym supply1 supply2)
+ in
+ mk_supply
+#endif
+
+#if defined(__HBC__)
+initialNameSupply = gen ()
+ where gen n = NameSupply (__gensym n) (gen n) (gen n)
+#endif
+
+splitNameSupply (NameSupply _ s1 s2) = (s1, s2)
+
+getName (NameSupply k _ _) = k
+
+listNameSupply (NameSupply _ s1 s2) = s1 : listNameSupply s2
diff --git a/ghc/lib/hbc/NameSupply_mc.hi b/ghc/lib/hbc/NameSupply_mc.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_mc.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply_mg.hi b/ghc/lib/hbc/NameSupply_mg.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_mg.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply_mp.hi b/ghc/lib/hbc/NameSupply_mp.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_mp.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply_mr.hi b/ghc/lib/hbc/NameSupply_mr.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_mr.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply_mt.hi b/ghc/lib/hbc/NameSupply_mt.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_mt.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply_p.hi b/ghc/lib/hbc/NameSupply_p.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_p.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/NameSupply_t.hi b/ghc/lib/hbc/NameSupply_t.hi
new file mode 100644
index 0000000000..886cf3192a
--- /dev/null
+++ b/ghc/lib/hbc/NameSupply_t.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface NameSupply where
+type Name = Int
+data NameSupply {-# GHC_PRAGMA NameSupply Int NameSupply NameSupply #-}
+getName :: NameSupply -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> u1; _NO_DEFLT_ } _N_ #-}
+initialNameSupply :: NameSupply
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+listNameSupply :: NameSupply -> [NameSupply]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+splitNameSupply :: NameSupply -> (NameSupply, NameSupply)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(ALL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: NameSupply) (u1 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: NameSupply) -> case u0 of { _ALG_ _ORIG_ NameSupply NameSupply (u1 :: Int) (u2 :: NameSupply) (u3 :: NameSupply) -> _!_ _TUP_2 [NameSupply, NameSupply] [u2, u3]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Native.hi b/ghc/lib/hbc/Native.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native.hs b/ghc/lib/hbc/Native.hs
new file mode 100644
index 0000000000..a0d4d99663
--- /dev/null
+++ b/ghc/lib/hbc/Native.hs
@@ -0,0 +1,356 @@
+#if defined(__YALE_HASKELL__)
+-- Native.hs -- native data conversions and I/O
+--
+-- author : Sandra Loosemore
+-- date : 07 Jun 1994
+--
+--
+-- Unlike in the original hbc version of this library, a Byte is a completely
+-- abstract data type and not a character. You can't read and write Bytes
+-- to ordinary text files; you must use the operations defined here on
+-- Native files.
+-- It's guaranteed to be more efficient to read and write objects directly
+-- to a file than to do the conversion to a Byte stream and read/write
+-- the Byte stream.
+#endif
+
+module Native(
+ Native(..), Bytes(..),
+ shortIntToBytes, bytesToShortInt,
+ longIntToBytes, bytesToLongInt,
+ showB, readB
+#if __HASKELL1__ < 3
+ , Maybe..
+#endif
+#if defined(__YALE_HASKELL__)
+ , openInputByteFile, openOutputByteFile, closeByteFile
+ , readBFile, readBytesFromByteFile
+ , shortIntToByteFile, bytesToShortIntIO
+ , ByteFile
+ , Byte
+#endif
+ ) where
+
+#if __HASKELL1__ < 3
+import {-flummox mkdependHS-}
+ Maybe
+#endif
+
+#if defined(__YALE_HASKELL__)
+import NativePrims
+
+-- these data types are completely opaque on the Haskell side.
+
+data Byte = Byte
+data ByteFile = ByteFile
+type Bytes = [Byte]
+
+instance Text(Byte) where
+ showsPrec _ _ = showString "Byte"
+
+instance Text(ByteFile) where
+ showsPrec _ _ = showString "ByteFile"
+
+-- Byte file primitives
+
+openInputByteFile :: String -> IO (ByteFile)
+openOutputByteFile :: String -> IO (ByteFile)
+closeByteFile :: ByteFile -> IO ()
+
+openInputByteFile = primOpenInputByteFile
+openOutputByteFile = primOpenOutputByteFile
+closeByteFile = primCloseByteFile
+#endif {- YALE-}
+
+#if defined(__GLASGOW_HASKELL__)
+import ByteOps -- partain
+type Bytes = [Char]
+#endif
+
+#if defined(__HBC__)
+import LMLbyteops
+type Bytes = [Char]
+#endif
+
+-- Here are the basic operations defined on the class.
+
+class Native a where
+
+ -- these are primitives
+ showBytes :: a -> Bytes -> Bytes -- convert to bytes
+ readBytes :: Bytes -> Maybe (a, Bytes) -- get an item and the rest
+#if defined(__YALE_HASKELL__)
+ showByteFile :: a -> ByteFile -> IO ()
+ readByteFile :: ByteFile -> IO a
+#endif
+
+ -- these are derived
+ listShowBytes :: [a] -> Bytes -> Bytes -- convert a list to bytes
+ listReadBytes :: Int -> Bytes -> Maybe ([a], Bytes) -- get n items and the rest
+#if defined(__YALE_HASKELL__)
+ listShowByteFile :: [a] -> ByteFile -> IO ()
+ listReadByteFile :: Int -> ByteFile -> IO [a]
+#endif
+
+ -- here are defaults for the derived methods.
+
+ listShowBytes [] bs = bs
+ listShowBytes (x:xs) bs = showBytes x (listShowBytes xs bs)
+
+ listReadBytes 0 bs = Just ([], bs)
+ listReadBytes n bs =
+ case readBytes bs of
+ Nothing -> Nothing
+ Just (x,bs') ->
+ case listReadBytes (n-1) bs' of
+ Nothing -> Nothing
+ Just (xs,bs'') -> Just (x:xs, bs'')
+
+#if defined(__YALE_HASKELL__)
+ listShowByteFile l f =
+ foldr (\ head tail -> (showByteFile head f) >> tail)
+ (return ())
+ l
+
+ listReadByteFile 0 f =
+ return []
+ listReadByteFile n f =
+ readByteFile f >>= \ h ->
+ listReadByteFile (n - 1) f >>= \ t ->
+ return (h:t)
+#endif
+
+#if ! defined(__YALE_HASKELL__)
+-- Some utilities that Yale doesn't use
+hasNElems :: Int -> [a] -> Bool
+hasNElems 0 _ = True
+hasNElems 1 (_:_) = True -- speedup
+hasNElems 2 (_:_:_) = True -- speedup
+hasNElems 3 (_:_:_:_) = True -- speedup
+hasNElems 4 (_:_:_:_:_) = True -- speedup
+hasNElems _ [] = False
+hasNElems n (_:xs) = hasNElems (n-1) xs
+
+lenLong = length (longToBytes 0 [])
+lenInt = length (intToBytes 0 [])
+lenShort = length (shortToBytes 0 [])
+lenFloat = length (floatToBytes 0 [])
+lenDouble = length (doubleToBytes 0 [])
+#endif
+
+-- Basic instances, defined as primitives
+
+instance Native Char where
+#if defined(__YALE_HASKELL__)
+ showBytes = primCharShowBytes
+ readBytes = primCharReadBytes
+ showByteFile = primCharShowByteFile
+ readByteFile = primCharReadByteFile
+#else
+ showBytes c bs = c:bs
+ readBytes [] = Nothing
+ readBytes (c:cs) = Just (c,cs)
+ listReadBytes n bs = f n bs []
+ where f 0 bs cs = Just (reverse cs, bs)
+ f _ [] _ = Nothing
+ f n (b:bs) cs = f (n-1::Int) bs (b:cs)
+#endif
+
+instance Native Int where
+#if defined(__YALE_HASKELL__)
+ showBytes = primIntShowBytes
+ readBytes = primIntReadBytes
+ showByteFile = primIntShowByteFile
+ readByteFile = primIntReadByteFile
+#else
+ showBytes i bs = intToBytes i bs
+ readBytes bs = if hasNElems lenInt bs then Just (bytesToInt bs) else Nothing
+#endif
+
+instance Native Float where
+#if defined(__YALE_HASKELL__)
+ showBytes = primFloatShowBytes
+ readBytes = primFloatReadBytes
+ showByteFile = primFloatShowByteFile
+ readByteFile = primFloatReadByteFile
+#else
+ showBytes i bs = floatToBytes i bs
+ readBytes bs = if hasNElems lenFloat bs then Just (bytesToFloat bs) else Nothing
+#endif
+
+instance Native Double where
+#if defined(__YALE_HASKELL__)
+ showBytes = primDoubleShowBytes
+ readBytes = primDoubleReadBytes
+ showByteFile = primDoubleShowByteFile
+ readByteFile = primDoubleReadByteFile
+#else
+ showBytes i bs = doubleToBytes i bs
+ readBytes bs = if hasNElems lenDouble bs then Just (bytesToDouble bs) else Nothing
+#endif
+
+instance Native Bool where
+#if defined(__YALE_HASKELL__)
+ showBytes = primBoolShowBytes
+ readBytes = primBoolReadBytes
+ showByteFile = primBoolShowByteFile
+ readByteFile = primBoolReadByteFile
+#else
+ showBytes b bs = if b then '\x01':bs else '\x00':bs
+ readBytes [] = Nothing
+ readBytes (c:cs) = Just(c/='\x00', cs)
+#endif
+
+#if defined(__YALE_HASKELL__)
+-- Byte instances, so you can write Bytes to a ByteFile
+
+instance Native Byte where
+ showBytes = (:)
+ readBytes l =
+ case l of
+ [] -> Nothing
+ h:t -> Just(h,t)
+ showByteFile = primByteShowByteFile
+ readByteFile = primByteReadByteFile
+#endif
+
+-- A pair is stored as two consecutive items.
+instance (Native a, Native b) => Native (a,b) where
+ showBytes (a,b) = showBytes a . showBytes b
+ readBytes bs = readBytes bs `thenMaybe` \(a,bs') ->
+ readBytes bs' `thenMaybe` \(b,bs'') ->
+ Just ((a,b), bs'')
+#if defined(__YALE_HASKELL__)
+ showByteFile (a,b) f = (showByteFile a f) >> (showByteFile b f)
+
+ readByteFile f =
+ readByteFile f >>= \ a ->
+ readByteFile f >>= \ b ->
+ return (a,b)
+#endif
+
+-- A triple is stored as three consectutive items.
+instance (Native a, Native b, Native c) => Native (a,b,c) where
+ showBytes (a,b,c) = showBytes a . showBytes b . showBytes c
+ readBytes bs = readBytes bs `thenMaybe` \(a,bs') ->
+ readBytes bs' `thenMaybe` \(b,bs'') ->
+ readBytes bs'' `thenMaybe` \(c,bs''') ->
+ Just ((a,b,c), bs''')
+#if defined(__YALE_HASKELL__)
+ showByteFile (a,b,c) f =
+ (showByteFile a f) >>
+ (showByteFile b f) >>
+ (showByteFile c f)
+
+ readByteFile f =
+ readByteFile f >>= \ a ->
+ readByteFile f >>= \ b ->
+ readByteFile f >>= \ c ->
+ return (a,b,c)
+#endif
+
+-- A list is stored with an Int with the number of items followed by the items.
+instance (Native a) => Native [a] where
+ showBytes xs bs = showBytes (length xs) (f xs) where f [] = bs
+ f (x:xs) = showBytes x (f xs)
+ readBytes bs = readBytes bs `thenMaybe` \(n,bs') ->
+ listReadBytes n bs' `thenMaybe` \(xs, bs'') ->
+ Just (xs, bs'')
+#if defined(__YALE_HASKELL__)
+ showByteFile l f = (showByteFile (length l) f) >> (listShowByteFile l f)
+ readByteFile f = readByteFile f >>= \ n -> listReadByteFile n f
+#endif
+
+-- A Maybe is stored as a Boolean possibly followed by a value
+instance (Native a) => Native (Maybe a) where
+#if !defined(__YALE_HASKELL__)
+ showBytes Nothing = ('\x00' :)
+ showBytes (Just x) = ('\x01' :) . showBytes x
+ readBytes ('\x00':bs) = Just (Nothing, bs)
+ readBytes ('\x01':bs) = readBytes bs `thenMaybe` \(a,bs') ->
+ Just (Just a, bs')
+ readBytes _ = Nothing
+#else
+ showBytes (Just a) = showBytes True . showBytes a
+ showBytes Nothing = showBytes False
+ readBytes bs =
+ readBytes bs `thenMaybe` \ (isJust, bs') ->
+ if isJust then
+ readBytes bs' `thenMaybe` \ (a, bs'') ->
+ Just (Just a, bs'')
+ else
+ Just (Nothing, bs')
+
+ showByteFile (Just a) f = showByteFile True f >> showByteFile a f
+ showByteFile Nothing f = showByteFile False f
+ readByteFile f =
+ readByteFile f >>= \ isJust ->
+ if isJust then
+ readByteFile f >>= \ a ->
+ return (Just a)
+ else
+ return Nothing
+#endif
+
+instance (Native a, Ix a, Native b) => Native (Array a b) where
+ showBytes a = showBytes (bounds a) . showBytes (elems a)
+ readBytes bs = readBytes bs `thenMaybe` \(b, bs')->
+ readBytes bs' `thenMaybe` \(xs, bs'')->
+ Just (listArray b xs, bs'')
+
+shortIntToBytes :: Int -> Bytes -> Bytes
+bytesToShortInt :: Bytes -> Maybe (Int, Bytes)
+longIntToBytes :: Int -> Bytes -> Bytes
+bytesToLongInt :: Bytes -> Maybe (Int, Bytes)
+#if defined(__YALE_HASKELL__)
+shortIntToByteFile :: Int -> ByteFile -> IO ()
+bytesToShortIntIO :: ByteFile -> IO Int
+#endif
+
+#if defined(__YALE_HASKELL__)
+-- These functions are like the primIntxx but use a "short" rather than
+-- "int" representation.
+shortIntToBytes = primShortShowBytes
+bytesToShortInt = primShortReadBytes
+shortIntToByteFile = primShortShowByteFile
+bytesToShortIntIO = primShortReadByteFile
+
+#else {-! YALE-}
+
+shortIntToBytes s bs = shortToBytes s bs
+
+bytesToShortInt bs = if hasNElems lenShort bs then Just (bytesToShort bs) else Nothing
+
+longIntToBytes s bs = longToBytes s bs
+
+bytesToLongInt bs = if hasNElems lenLong bs then Just (bytesToLong bs) else Nothing
+
+#endif {-! YALE-}
+
+showB :: (Native a) => a -> Bytes
+showB x = showBytes x []
+
+readB :: (Native a) => Bytes -> a
+readB bs =
+ case readBytes bs of
+ Just (x,[]) -> x
+ Just (_,_) -> error "Native.readB data too long"
+ Nothing -> error "Native.readB data too short"
+
+#if defined(__YALE_HASKELL__)
+readBFile :: String -> IO(Bytes)
+readBFile name =
+ openInputByteFile name >>= \ f ->
+ readBytesFromByteFile f
+
+readBytesFromByteFile :: ByteFile -> IO(Bytes)
+readBytesFromByteFile f =
+ try
+ (primByteReadByteFile f >>= \ h ->
+ readBytesFromByteFile f >>= \ t ->
+ return (h:t))
+ onEOF
+ where
+ onEOF EOF = closeByteFile f >> return []
+ onEOF err = closeByteFile f >> failwith err
+#endif
diff --git a/ghc/lib/hbc/Native_mc.hi b/ghc/lib/hbc/Native_mc.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_mc.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native_mg.hi b/ghc/lib/hbc/Native_mg.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_mg.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native_mp.hi b/ghc/lib/hbc/Native_mp.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_mp.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native_mr.hi b/ghc/lib/hbc/Native_mr.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_mr.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native_mt.hi b/ghc/lib/hbc/Native_mt.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_mt.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native_p.hi b/ghc/lib/hbc/Native_p.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_p.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Native_t.hi b/ghc/lib/hbc/Native_t.hi
new file mode 100644
index 0000000000..4efebded78
--- /dev/null
+++ b/ghc/lib/hbc/Native_t.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Native where
+import PreludeArray(Array)
+import PreludeStdIO(Maybe)
+class Native a where
+ showBytes :: a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DNative.Native.showBytes\"", u2, u3 ] _N_ #-}
+ readBytes :: [Char] -> Maybe (a, [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> Maybe (u0, [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: [Char]) -> _APP_ _TYAPP_ patError# { ([Char] -> Maybe (u0, [Char])) } [ _NOREP_S_ "%DNative.Native.readBytes\"", u2 ] _N_ #-}
+ listShowBytes :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LSL" _N_ _N_ #-}
+ listReadBytes :: Int -> [Char] -> Maybe ([a], [Char])
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> [Char] -> [Char], [Char] -> Maybe (u0, [Char]), [u0] -> [Char] -> [Char], Int -> [Char] -> Maybe ([u0], [Char]))) -> case u1 of { _ALG_ _TUP_4 (u2 :: u0 -> [Char] -> [Char]) (u3 :: [Char] -> Maybe (u0, [Char])) (u4 :: [u0] -> [Char] -> [Char]) (u5 :: Int -> [Char] -> Maybe ([u0], [Char])) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+type Bytes = [Char]
+bytesToLongInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+bytesToShortInt :: [Char] -> Maybe (Int, [Char])
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+longIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readB :: Native a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+shortIntToBytes :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+showB :: Native a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(SAAA)L" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 2 CX 6 _/\_ u0 -> \ (u1 :: {{Native u0}}) (u2 :: u0) -> let {(u3 :: [Char]) = _!_ _NIL_ [Char] []} in case u1 of { _ALG_ _TUP_4 (u4 :: u0 -> [Char] -> [Char]) (u5 :: [Char] -> Maybe (u0, [Char])) (u6 :: [u0] -> [Char] -> [Char]) (u7 :: Int -> [Char] -> Maybe ([u0], [Char])) -> _APP_ u4 [ u2, u3 ]; _NO_DEFLT_ } _N_ #-}
+instance (Native a, Native b) => Native (a, b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Native b, Native c) => Native (a, b, c)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Native a, Ix a, Native b) => Native (Array a b)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Native Bool
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Bool -> [Char] -> [Char]), ([Char] -> Maybe (Bool, [Char])), ([Bool] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Bool], [Char]))] [_CONSTM_ Native showBytes (Bool), _CONSTM_ Native readBytes (Bool), _CONSTM_ Native listShowBytes (Bool), _CONSTM_ Native listReadBytes (Bool)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "EL" _N_ _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Char
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Char -> [Char] -> [Char]), ([Char] -> Maybe (Char, [Char])), ([Char] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Char], [Char]))] [_CONSTM_ Native showBytes (Char), _CONSTM_ Native readBytes (Char), _CONSTM_ Native listShowBytes (Char), _CONSTM_ Native listReadBytes (Char)] _N_
+ showBytes = _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_,
+ readBytes = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Native Double
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Double -> [Char] -> [Char]), ([Char] -> Maybe (Double, [Char])), ([Double] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Double], [Char]))] [_CONSTM_ Native showBytes (Double), _CONSTM_ Native readBytes (Double), _CONSTM_ Native listShowBytes (Double), _CONSTM_ Native listReadBytes (Double)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Float
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Float -> [Char] -> [Char]), ([Char] -> Maybe (Float, [Char])), ([Float] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Float], [Char]))] [_CONSTM_ Native showBytes (Float), _CONSTM_ Native readBytes (Float), _CONSTM_ Native listShowBytes (Float), _CONSTM_ Native listReadBytes (Float)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native Int
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [Char]), ([Char] -> Maybe (Int, [Char])), ([Int] -> [Char] -> [Char]), (Int -> [Char] -> Maybe ([Int], [Char]))] [_CONSTM_ Native showBytes (Int), _CONSTM_ Native readBytes (Int), _CONSTM_ Native listShowBytes (Int), _CONSTM_ Native listReadBytes (Int)] _N_
+ showBytes = _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readBytes = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ listShowBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_,
+ listReadBytes = _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native (Maybe a)
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Native a => Native [a]
+ {-# GHC_PRAGMA _M_ Native {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number.hi b/ghc/lib/hbc/Number.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number.hs b/ghc/lib/hbc/Number.hs
new file mode 100644
index 0000000000..01934a7508
--- /dev/null
+++ b/ghc/lib/hbc/Number.hs
@@ -0,0 +1,124 @@
+module Number(Number, isInteger) where
+data Number = I Integer | F Double
+
+toF (I i) = fromInteger i
+toF (F f) = f
+
+toI (I i) = i
+toI (F f) = round f
+
+-- slow!!
+toN x | fromInteger i == x = I i where i = truncate x
+toN x = F x
+
+isInteger (I i) = True
+isInteger (F x) = fromInteger (truncate x) == x
+
+instance Eq Number where
+ I x == I y = x == y
+ x == y = toF x == toF y
+
+instance Ord Number where
+ I x <= I y = x <= y
+ x <= y = toF x <= toF y
+
+instance Text Number where
+ showsPrec p (I i) = showsPrec p i
+-- showsPrec p (F f) | fromInteger i == f = showsPrec p i where i = truncate f
+ showsPrec p (F f) =
+ let s = reverse (show f)
+ s' = if 'e' `notElem` s then dropWhile (=='0') (tail s) else s
+ s'' = if head s' == '.' then tail s' else s'
+ in showString (reverse s'')
+ readsPrec p s = [(I i, s) | (i, s)<-readsPrec p s] ++
+ [(F i, s) | (i, s)<-readsPrec p s]
+
+#if defined(__HBC__)
+ showsType _ = showString "Number"
+#endif
+
+instance Num Number where
+ I x + I y = I (x+y)
+ x + y = toN (toF x + toF y)
+ I x - I y = I (x-y)
+ x - y = toN (toF x - toF y)
+ I x * I y = I (x*y)
+ x * y = toN (toF x * toF y)
+ negate (I x) = I (-x)
+ negate (F x) = F (-x)
+ abs x = if x <= 0 then -x else x
+ signum x = if x <= 0 then if x==0 then 0 else -1 else 1
+ fromInteger i = I i
+
+instance Ix Number where
+ range (x, y) = [I i | i<-[toI x .. toI y]]
+ index (x, y) i = fromInteger (toI i - toI x)
+ inRange (x, y) i = toI x <= toI i && toI i <= toI y
+
+instance Integral Number where
+ quotRem (I x) (I y) = case quotRem x y of (q,r) -> (I q, I r)
+ quotRem x y = let q = truncate (x' / y')
+ x' = toF x
+ y' = toF y
+ in (I q, toN (x' - fromInteger q * y'))
+ toInteger (I i) = i
+ toInteger (F f) = round f
+
+instance Enum Number where
+ enumFrom (I i) = [I x | x<-[i..]]
+ enumFrom (F i) = [F x | x<-[i..]]
+ enumFromThen (I i) (I j) = [I x | x<-[i,j..]]
+ enumFromThen i j = [F x | x<-[toF i,toF j..]]
+
+instance Real Number where
+ toRational (I i) = i % 1
+ toRational (F f) = toRational f
+
+instance Fractional Number where
+ I x / I y | r == 0 = I q where (q,r) = quotRem x y
+ x / y = toN (toF x / toF y)
+ fromRational r | denominator r == 0 = I (numerator r)
+ fromRational r = toN (fromRational r)
+
+instance RealFrac Number where
+ properFraction (I i) = (fromInteger i, I 0)
+ properFraction (F f) = let (i,x) = properFraction f in (i, toN x)
+ truncate (I i) = fromInteger i
+ truncate (F f) = truncate f
+ round (I i) = fromInteger i
+ round (F f) = round f
+ ceiling (I i) = fromInteger i
+ ceiling (F f) = ceiling f
+ floor (I i) = fromInteger i
+ floor (F f) = floor f
+
+instance RealFloat Number where
+ floatRadix x = floatRadix (toF x)
+ floatDigits x = floatDigits (toF x)
+ floatRange x = floatRange (toF x)
+ decodeFloat x = decodeFloat (toF x)
+ encodeFloat m e = toN (encodeFloat m e)
+ exponent x = exponent (toF x)
+ significand x = toN (significand (toF x))
+ scaleFloat n x = toN (scaleFloat n (toF x))
+
+instance Floating Number where
+ pi = F pi
+ exp = toN . exp . toF
+ log = toN . log . toF
+ sqrt = toN . sqrt . toF
+ x ** y = toN (toF x ** toF y)
+ logBase x y = toN (logBase (toF x) (toF y))
+ sin = toN . sin . toF
+ cos = toN . cos . toF
+ tan = toN . tan . toF
+ asin = toN . asin . toF
+ acos = toN . acos . toF
+ atan = toN . atan . toF
+ sinh = toN . sinh . toF
+ cosh = toN . cosh . toF
+ tanh = toN . tanh . toF
+ asinh = toN . asinh . toF
+ acosh = toN . acosh . toF
+ atanh = toN . atanh . toF
+
diff --git a/ghc/lib/hbc/Number_mc.hi b/ghc/lib/hbc/Number_mc.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_mc.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number_mg.hi b/ghc/lib/hbc/Number_mg.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_mg.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number_mp.hi b/ghc/lib/hbc/Number_mp.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_mp.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number_mr.hi b/ghc/lib/hbc/Number_mr.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_mr.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number_mt.hi b/ghc/lib/hbc/Number_mt.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_mt.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number_p.hi b/ghc/lib/hbc/Number_p.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_p.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Number_t.hi b/ghc/lib/hbc/Number_t.hi
new file mode 100644
index 0000000000..eb5642f750
--- /dev/null
+++ b/ghc/lib/hbc/Number_t.hi
@@ -0,0 +1,103 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Number where
+data Number {-# GHC_PRAGMA I Integer | F Double #-}
+isInteger :: Number -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Enum Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Number}}, (Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> [Number]), (Number -> Number -> Number -> [Number])] [_DFUN_ Ord (Number), _CONSTM_ Enum enumFrom (Number), _CONSTM_ Enum enumFromThen (Number), _CONSTM_ Enum enumFromTo (Number), _CONSTM_ Enum enumFromThenTo (Number)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Number -> Number -> Bool), (Number -> Number -> Bool)] [_CONSTM_ Eq (==) (Number), _CONSTM_ Eq (/=) (Number)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Number}}, Number, (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number)] [_DFUN_ Fractional (Number), _CONSTM_ Floating pi (Number), _CONSTM_ Floating exp (Number), _CONSTM_ Floating log (Number), _CONSTM_ Floating sqrt (Number), _CONSTM_ Floating (**) (Number), _CONSTM_ Floating logBase (Number), _CONSTM_ Floating sin (Number), _CONSTM_ Floating cos (Number), _CONSTM_ Floating tan (Number), _CONSTM_ Floating asin (Number), _CONSTM_ Floating acos (Number), _CONSTM_ Floating atan (Number), _CONSTM_ Floating sinh (Number), _CONSTM_ Floating cosh (Number), _CONSTM_ Floating tanh (Number), _CONSTM_ Floating asinh (Number), _CONSTM_ Floating acosh (Number), _CONSTM_ Floating atanh (Number)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ _ORIG_ Number F [] [_CONSTM_ Floating pi (Double)] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance Fractional Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Number}}, (Number -> Number -> Number), (Number -> Number), (Ratio Integer -> Number)] [_DFUN_ Num (Number), _CONSTM_ Fractional (/) (Number), _CONSTM_ Fractional recip (Number), _CONSTM_ Fractional fromRational (Number)] _N_
+ (/) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LU(PPP))" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Number}}, {{Ix Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> (Number, Number)), (Number -> Number -> (Number, Number)), (Number -> Bool), (Number -> Bool), (Number -> Integer), (Number -> Int)] [_DFUN_ Real (Number), _DFUN_ Ix (Number), _CONSTM_ Integral quot (Number), _CONSTM_ Integral rem (Number), _CONSTM_ Integral div (Number), _CONSTM_ Integral mod (Number), _CONSTM_ Integral quotRem (Number), _CONSTM_ Integral divMod (Number), _CONSTM_ Integral even (Number), _CONSTM_ Integral odd (Number), _CONSTM_ Integral toInteger (Number), _CONSTM_ Integral toInt (Number)] _N_
+ quot = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 22 _N_ _S_ "SL" _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Number) (u1 :: Number) -> case _APP_ _CONSTM_ Integral quotRem (Number) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Number) (u3 :: Number) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ mod = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ quotRem = _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_,
+ divMod = _A_ 0 _U_ 22 _N_ _N_ _N_ _N_,
+ even = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ odd = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ toInt = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Number) -> _APP_ _TYAPP_ patError# { (Number -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u0 ] _N_ #-}
+instance Ix Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Number}}, ((Number, Number) -> [Number]), ((Number, Number) -> Number -> Int), ((Number, Number) -> Number -> Bool)] [_DFUN_ Ord (Number), _CONSTM_ Ix range (Number), _CONSTM_ Ix index (Number), _CONSTM_ Ix inRange (Number)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SA)S" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(SL)S" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Number}}, {{Text Number}}, (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number), (Number -> Number), (Number -> Number), (Integer -> Number), (Int -> Number)] [_DFUN_ Eq (Number), _DFUN_ Text (Number), _CONSTM_ Num (+) (Number), _CONSTM_ Num (-) (Number), _CONSTM_ Num (*) (Number), _CONSTM_ Num negate (Number), _CONSTM_ Num abs (Number), _CONSTM_ Num signum (Number), _CONSTM_ Num fromInteger (Number), _CONSTM_ Num fromInt (Number)] _N_
+ (+) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (-) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (*) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Integer) -> _!_ _ORIG_ Number I [] [u0] _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Int) -> let {(u2 :: Integer) = case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ }} in _!_ _ORIG_ Number I [] [u2] _N_ #-}
+instance Ord Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Number}}, (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Bool), (Number -> Number -> Number), (Number -> Number -> Number), (Number -> Number -> _CMP_TAG)] [_DFUN_ Eq (Number), _CONSTM_ Ord (<) (Number), _CONSTM_ Ord (<=) (Number), _CONSTM_ Ord (>=) (Number), _CONSTM_ Ord (>) (Number), _CONSTM_ Ord max (Number), _CONSTM_ Ord min (Number), _CONSTM_ Ord _tagCmp (Number)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Number) (u1 :: Number) -> _APP_ _CONSTM_ Ord (<=) (Number) [ u1, u0 ] _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Real Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Number}}, {{Enum Number}}, (Number -> Ratio Integer)] [_DFUN_ Num (Number), _DFUN_ Enum (Number), _CONSTM_ Real toRational (Number)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+instance RealFloat Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Number}}, {{Floating Number}}, (Number -> Integer), (Number -> Int), (Number -> (Int, Int)), (Number -> (Integer, Int)), (Integer -> Int -> Number), (Number -> Int), (Number -> Number), (Int -> Number -> Number)] [_DFUN_ RealFrac (Number), _DFUN_ Floating (Number), _CONSTM_ RealFloat floatRadix (Number), _CONSTM_ RealFloat floatDigits (Number), _CONSTM_ RealFloat floatRange (Number), _CONSTM_ RealFloat decodeFloat (Number), _CONSTM_ RealFloat encodeFloat (Number), _CONSTM_ RealFloat exponent (Number), _CONSTM_ RealFloat significand (Number), _CONSTM_ RealFloat scaleFloat (Number)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Number) -> _#_ int2Integer# [] [2#] _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Number) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ exponent = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Number}}, {{Fractional Number}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> (a$z1, Number)), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Number -> a$z1)] [_DFUN_ Real (Number), _DFUN_ Fractional (Number), _CONSTM_ RealFrac properFraction (Number), _CONSTM_ RealFrac truncate (Number), _CONSTM_ RealFrac round (Number), _CONSTM_ RealFrac ceiling (Number), _CONSTM_ RealFrac floor (Number)] _N_
+ properFraction = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance Text Number
+ {-# GHC_PRAGMA _M_ Number {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Number, [Char])]), (Int -> Number -> [Char] -> [Char]), ([Char] -> [([Number], [Char])]), ([Number] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Number), _CONSTM_ Text showsPrec (Number), _CONSTM_ Text readList (Number), _CONSTM_ Text showList (Number)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse.hi b/ghc/lib/hbc/Parse.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse.hs b/ghc/lib/hbc/Parse.hs
new file mode 100644
index 0000000000..d8b2309f60
--- /dev/null
+++ b/ghc/lib/hbc/Parse.hs
@@ -0,0 +1,293 @@
+module Parse(
+ Parser(..), (+.+), (..+), (+..), (|||), (>>>), (||!), (|!!), (.>),
+ into, lit, litp, many, many1, succeed, sepBy, count, sepBy1, testp, token, recover,
+ ParseResult, parse, sParse, simpleParse,
+#if __HASKELL1__ < 3
+ (>>), fail
+#else
+ act, failP
+#endif
+ ) where
+
+--import Trace
+#if __HASKELL1__ < 3
+import {-flummox mkdependHS-}
+ Maybe
+import
+ Either renaming (Left to Wrong)
+#else
+#define Wrong Left
+#endif
+#if defined(__HBC__)
+import UnsafeDirty(seq)
+#endif
+
+infixr 8 +.+ , ..+ , +..
+#if __HASKELL1__ < 3
+infix 6 >> , `act` , >>>, `into` , .>
+#else
+infix 6 `act` , >>>, `into` , .>
+#endif
+infixr 4 ||| , ||! , |!!
+
+#if !defined(__HBC__)
+seq x y = y --partain: a substitute
+#endif
+
+type ErrMsg = String
+
+data FailAt a
+ = FailAt Int{-#STRICT#-} [ErrMsg] a -- token pos, list of acceptable tokens, rest of tokens
+ deriving (Text)
+data ParseResult a b
+ = Many [(b, Int, a)] (FailAt a) -- parse succeeded with many (>1) parses)
+ | One b Int{-#STRICT#-} a (FailAt a){-#STRICT#-} -- parse succeeded with one parse
+ | None Bool{-#STRICT#-} (FailAt a){-#STRICT#-} -- parse failed. The Bool indicates hard fail
+ deriving (Text)
+
+type Parser a b = a -> Int -> ParseResult a b
+
+noFail = FailAt (-1) [] (error "noFail") -- indicates no failure yet
+
+updFail f (None w f') = None w (bestFailAt f f')
+updFail f (One c n as f') = One c n as (bestFailAt f f')
+updFail f (Many cas f') = let r = bestFailAt f f' in seq r (Many cas r)
+
+bestFailAt f@(FailAt i a t) f'@(FailAt j a' _) =
+ if i > j then
+ f
+ else if j > i then
+ f'
+ else if i == -1 then
+ noFail --FailAt (-1) [] []
+ else
+ FailAt i (a ++ a') t
+
+-- Alternative
+(|||) :: Parser a b -> Parser a b -> Parser a b
+p ||| q = \as n ->
+ case (p as n, q as n) of
+ (pr@(None True _), _ ) -> pr
+ (pr@(None _ f), qr ) -> updFail f qr
+ ( One b k as f , qr ) -> Many ((b,k,as) : l') (bestFailAt f f') where (l',f') = lf qr
+ ( Many l f , qr ) -> Many ( l++l') (bestFailAt f f') where (l',f') = lf qr
+ where lf (Many l f) = (l, f)
+ lf (One b k as f) = ([(b,k,as)], f)
+ lf (None _ f) = ([], f)
+
+-- Alternative, but with committed choice
+(||!) :: Parser a b -> Parser a b -> Parser a b
+p ||! q = \as n ->
+ case (p as n, q as n) of
+ (pr@(None True _), _ ) -> pr
+ ( None _ f , qr ) -> updFail f qr
+ (pr , _ ) -> pr
+
+process f [] [] = seq f (None False f)
+process f [(b,k,as)] [] = seq f (One b k as f)
+process f rs [] = seq f (Many rs f)
+process f rs (w@(None True _):_) = seq f w
+process f rs (None False f':rws) = process (bestFailAt f f') rs rws
+process f rs (One b k as f':rws) = process (bestFailAt f f') (rs++[(b,k,as)]) rws
+process f rs (Many rs' f' :rws) = process (bestFailAt f f') (rs++rs') rws
+
+doMany g cas f = Many [ (g c, n, as) | (c,n,as) <- cas] f
+
+-- Sequence
+(+.+) :: Parser a b -> Parser a c -> Parser a (b,c)
+p +.+ q =
+ \as n->
+ case p as n of
+ None w f -> None w f
+ One b n' as' f ->
+ case q as' n' of
+ None w f' -> None w (bestFailAt f f')
+ One c n'' as'' f' -> One (b,c) n'' as'' (bestFailAt f f')
+ Many cas f' -> doMany (\x->(b,x)) cas (bestFailAt f f')
+ Many bas f ->
+ let rss = [ case q as' n' of { None w f -> None w f;
+ One c n'' as'' f' -> One (b,c) n'' as'' f';
+ Many cas f' -> doMany (\x->(b,x)) cas f' }
+ | (b,n',as') <- bas ]
+ in process f [] rss
+
+-- Sequence, throw away first part
+(..+) :: Parser a b -> Parser a c -> Parser a c
+p ..+ q = -- p +.+ q `act` snd
+ \as n->
+ case p as n of
+ None w f -> None w f
+ One _ n' as' f -> updFail f (q as' n')
+ Many bas f -> process f [] [ q as' n' | (_,n',as') <- bas ]
+
+-- Sequence, throw away second part
+(+..) :: Parser a b -> Parser a c -> Parser a b
+p +.. q = -- p +.+ q `act` fst
+ \as n->
+ case p as n of
+ None w f -> None w f
+ One b n' as' f ->
+ case q as' n' of
+ None w f' -> None w (bestFailAt f f')
+ One _ n'' as'' f' -> One b n'' as'' (bestFailAt f f')
+ Many cas f' -> doMany (const b) cas (bestFailAt f f')
+ Many bas f ->
+ let rss = [ case q as' n' of { None w f -> None w f;
+ One _ n'' as'' f' -> One b n'' as'' f';
+ Many cas f' -> doMany (const b) cas f' }
+ | (b,n',as') <- bas ]
+ in process f [] rss
+
+-- Return a fixed value
+(.>) :: Parser a b -> c -> Parser a c
+p .> v =
+ \as n->
+ case p as n of
+ None w f -> None w f
+ One _ n' as' f' -> One v n' as' f'
+ Many bas f -> doMany (const v) bas f
+
+-- Action
+#if __HASKELL1__ < 3
+act = (>>)
+(>>) :: Parser a b -> (b->c) -> Parser a c
+p >> f = \as n->
+ case p as n of
+ None w f -> None w f
+ One b n as' ff -> One (f b) n as' ff
+ Many bas ff -> doMany f bas ff
+#else
+act :: Parser a b -> (b->c) -> Parser a c
+p `act` f = \as n->
+ case p as n of
+ None w f -> None w f
+ One b n as' ff -> One (f b) n as' ff
+ Many bas ff -> doMany f bas ff
+#endif
+
+-- Action on two items
+(>>>) :: Parser a (b,c) -> (b->c->d) -> Parser a d
+p >>> f = \as n->
+ case p as n of
+ None w ff -> None w ff
+ One (b,c) n as' ff -> One (f b c) n as' ff
+ Many bas ff -> doMany (\ (x,y)->f x y) bas ff
+
+-- Use value
+into :: Parser a b -> (b -> Parser a c) -> Parser a c
+p `into` fq = \as n ->
+ case p as n of
+ None w f -> None w f
+ One b n' as' f -> updFail f (fq b as' n')
+ Many bas f -> process f [] [ fq b as' n' | (b,n',as') <- bas ]
+
+-- Succeeds with a value
+succeed :: b -> Parser a b
+succeed v = \as n -> One v n as noFail
+
+-- Always fails.
+#if __HASKELL1__ < 3
+fail :: ErrMsg -> Parser a b
+fail s = \as n -> None False (FailAt n [s] as)
+#else
+failP :: ErrMsg -> Parser a b
+failP s = \as n -> None False (FailAt n [s] as)
+#endif
+
+-- Fail completely if parsing proceeds a bit and then fails
+mustAll :: Parser a b -> Parser a b
+mustAll p = \as n->
+ case p as n of
+ None False f@(FailAt x _ _) | x/=n -> None True f
+ r -> r
+
+-- If first alternative gives partial parse it's a failure
+p |!! q = mustAll p ||! q
+
+-- Kleene star
+many :: Parser a b -> Parser a [b]
+many p = p `into` (\v-> many p `act` (v:))
+ ||! succeed []
+
+many1 :: Parser a b -> Parser a [b]
+many1 p = p `into` (\v-> many p `act` (v:))
+
+-- Parse an exact number of items
+count :: Parser a b -> Int -> Parser a [b]
+count p 0 = succeed []
+count p k = p +.+ count p (k-1) >>> (:)
+
+-- Non-empty sequence of items separated by something
+sepBy1 :: Parser a b -> Parser a c -> Parser a [b]
+p `sepBy1` q = p `into` (\v-> many (q ..+ p) `act` (v:)) -- p +.+ many (q ..+ p) >>> (:) is slower
+
+-- Sequence of items separated by something
+sepBy :: Parser a b -> Parser a c -> Parser a [b]
+p `sepBy` q = p `sepBy1` q
+ ||! succeed []
+
+-- Recognize a literal token
+lit :: (Eq a, Text a) => a -> Parser [a] a
+lit x = \as n ->
+ case as of
+ a:as' | a==x -> One a (n+1) as' noFail
+ _ -> None False (FailAt n [show x] as)
+
+-- Recognize a token with a predicate
+litp :: ErrMsg -> (a->Bool) -> Parser [a] a
+litp s p = \as n->
+ case as of
+ a:as' | p a -> One a (n+1) as' noFail
+ _ -> None False (FailAt n [s] as)
+
+-- Generic token recognizer
+token :: (a -> Either ErrMsg (b,a)) -> Parser a b
+token f = \as n->
+ case f as of
+ Wrong s -> None False (FailAt n [s] as)
+ Right (b, as') -> One b (n+1) as' noFail
+
+-- Test a semantic value
+testp :: String -> (b->Bool) -> Parser a b -> Parser a b
+testp s tst p = \ as n ->
+ case p as n of
+ None w f -> None w f
+ o@(One b _ _ _) -> if tst b then o else None False (FailAt n [s] as)
+ Many bas f ->
+ case [ r | r@(b, _, _) <- bas, tst b] of
+ [] -> None False (FailAt n [s] as)
+ [(x,y,z)] -> One x y z f
+ rs -> Many rs f
+
+-- Try error recovery.
+recover :: Parser a b -> ([ErrMsg] -> a -> Maybe (a, b)) -> Parser a b
+recover p f = \ as n ->
+ case p as n of
+ r@(None _ fa@(FailAt n ss ts)) ->
+ case f ss ts of
+ Nothing -> r
+ Just (a, b) -> One b (n+1) a fa
+ r -> r
+
+-- Parse, and check if it was ok.
+parse :: Parser a b -> a -> Either ([ErrMsg],a) [(b, a)]
+parse p as =
+ case p as 0 of
+ None w (FailAt _ ss ts) -> Wrong (ss,ts)
+ One b _ ts _ -> Right [(b,ts)]
+ Many bas _ -> Right [(b,ts) | (b,_,ts) <- bas ]
+
+sParse :: (Text a) => Parser [a] b -> [a] -> Either String b
+sParse p as =
+ case parse p as of
+ Wrong (ss,ts) -> Wrong ("Parse failed at token "++pshow ts++", expected "++unwords ss++"\n")
+ where pshow [] = "<EOF>"
+ pshow (t:_) = show t
+ Right ((b,[]):_) -> Right b
+ Right ((_,t:_):_) -> Wrong ("Parse failed at token "++show t++", expected <EOF>\n")
+
+simpleParse :: (Text a) => Parser [a] b -> [a] -> b
+simpleParse p as =
+ case sParse p as of
+ Wrong msg -> error msg
+ Right x -> x
diff --git a/ghc/lib/hbc/Parse_mc.hi b/ghc/lib/hbc/Parse_mc.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_mc.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse_mg.hi b/ghc/lib/hbc/Parse_mg.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_mg.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse_mp.hi b/ghc/lib/hbc/Parse_mp.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_mp.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse_mr.hi b/ghc/lib/hbc/Parse_mr.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_mr.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse_mt.hi b/ghc/lib/hbc/Parse_mt.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_mt.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse_p.hi b/ghc/lib/hbc/Parse_p.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_p.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Parse_t.hi b/ghc/lib/hbc/Parse_t.hi
new file mode 100644
index 0000000000..9727fa58cc
--- /dev/null
+++ b/ghc/lib/hbc/Parse_t.hi
@@ -0,0 +1,69 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parse where
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+infixr 8 +.+
+infixr 8 +..
+infixr 8 ..+
+infixr 4 |!!
+infixr 4 ||!
+infixr 4 |||
+infix 6 .>
+infix 6 >>>
+infix 6 `act`
+infix 6 `into`
+data ParseResult a b
+type Parser a b = a -> Int -> ParseResult a b
+(+.+) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a c) -> a -> Int -> ParseResult a (b, c)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(+..) :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(..+) :: (b -> Int -> ParseResult b a) -> (b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(.>) :: (b -> Int -> ParseResult b a) -> c -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+(>>>) :: (c -> Int -> ParseResult c (a, b)) -> (a -> b -> d) -> c -> Int -> ParseResult c d
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+act :: (b -> Int -> ParseResult b a) -> (a -> c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+count :: (a -> Int -> ParseResult a b) -> Int -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(P)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failP :: [Char] -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+into :: (b -> Int -> ParseResult b a) -> (a -> b -> Int -> ParseResult b c) -> b -> Int -> ParseResult b c
+ {-# GHC_PRAGMA _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+lit :: (Eq a, Text a) => a -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11222 _N_ _N_ _N_ _N_ #-}
+litp :: [Char] -> (a -> Bool) -> [a] -> Int -> ParseResult [a] a
+ {-# GHC_PRAGMA _A_ 4 _U_ 2122 _N_ _S_ "LLSL" _N_ _N_ #-}
+many :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+many1 :: (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "S" _N_ _N_ #-}
+parse :: (b -> Int -> ParseResult b a) -> b -> Either ([[Char]], b) [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+recover :: (a -> Int -> ParseResult a b) -> ([[Char]] -> a -> Maybe (a, b)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+sParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> Either [Char] b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+sepBy :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+sepBy1 :: (b -> Int -> ParseResult b c) -> (b -> Int -> ParseResult b a) -> b -> Int -> ParseResult b [c]
+ {-# GHC_PRAGMA _A_ 2 _U_ 2222 _N_ _S_ "SL" _N_ _N_ #-}
+simpleParse :: Text a => ([a] -> Int -> ParseResult [a] b) -> [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+succeed :: b -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+testp :: [Char] -> (b -> Bool) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 5 _U_ 22122 _N_ _S_ "LLSLL" _N_ _N_ #-}
+token :: (a -> Either [Char] (b, a)) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+(|!!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 2 _U_ 1122 _N_ _S_ "SL" _N_ _N_ #-}
+(||!) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+(|||) :: (a -> Int -> ParseResult a b) -> (a -> Int -> ParseResult a b) -> a -> Int -> ParseResult a b
+ {-# GHC_PRAGMA _A_ 4 _U_ 1122 _N_ _S_ "SLLL" _N_ _N_ #-}
+instance (Text a, Text b) => Text (ParseResult a b)
+ {-# GHC_PRAGMA _M_ Parse {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty.hi b/ghc/lib/hbc/Pretty.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty.hs b/ghc/lib/hbc/Pretty.hs
new file mode 100644
index 0000000000..4bf0047c82
--- /dev/null
+++ b/ghc/lib/hbc/Pretty.hs
@@ -0,0 +1,86 @@
+module Pretty(text, separate, cseparate, nest, pretty, (~.), (^.), IText(..), Context(..)) where
+
+infixr 8 ~.
+infixr 8 ^.
+
+type IText = Context -> [String]
+type Context = (Bool,Int,Int,Int)
+-- Bool laying out in vertical context
+-- Int character left on the line before margin is reached
+-- Int maximum preferred number of significant characters on a line
+-- Int number of characters on last line, excluding leading blanks
+
+text :: String -> IText
+text s (v,w,m,m') = [s]
+
+getContext t (v,w,m,m') =
+ let tn = last t
+ indent = length tn
+ sig = if length t == 1
+ then m' + indent
+ else length (dropWhile (==' ') tn)
+ in (False,w-indent,m,sig)
+
+(~.) :: IText -> IText -> IText
+d1 ~. d2 = \ c@(v,w,m,m') ->
+ let t = d1 (False,w,m,m')
+ cx@(_,w',_,_) = getContext t c
+ indent = w-w'
+ tn = last t
+ (l:ls) = d2 cx
+ in init t ++
+ [tn ++ l] ++
+ map (space indent++) ls
+
+space :: Int -> String
+space n = [' ' | i<-[1..n]]
+
+(^.) :: IText -> IText -> IText
+d1 ^. d2 = \ (v,w,m,m') -> d1 (True,w,m,m') ++ d2 (True,w,m,0)
+
+separate :: [IText] -> IText
+separate [] _ = [""]
+separate ds c@(v,w,m,m') =
+ let hor = joinText (text " ") ds
+ ver = foldr1 (^.) ds
+ t = hor c
+ in if lengthLe t 1 && lengthLe (head t) ((w `min` (m-m')) `max` 0)
+ then t
+ else ver c
+
+-- Try to put as many things as possible on each line.
+-- Inefficient!
+cseparate :: [IText] -> IText
+cseparate [] _ = [""]
+cseparate ds c@(v,w,m,m') =
+ let csep r a (d:ds) =
+ let t = joinText (text " ") (a ++ [d]) c
+ in if lengthLe t 1 then
+ if lengthLe (head t) ((w `min` (m-m')) `max` 0) then
+ csep r (a ++ [d]) ds
+ else
+ csep (r++adda a) [d] ds
+ else
+ csep (r ++ adda a ++ [d]) [] ds
+ csep r a [] = r ++ adda a
+ adda [] = []
+ adda a = [joinText (text " ") a]
+ in foldr1 (^.) (csep [] [] ds) c
+
+joinText t ds = foldr1 (\d1 d2 -> d1 ~. t ~. d2) ds
+
+-- Check if the length of a list is less than n, without evaluating it completely.
+lengthLe :: [a] -> Int -> Bool
+lengthLe [] n = n >= 0
+lengthLe (_:_) 0 = False
+lengthLe (_:xs) n = lengthLe xs (n-1)
+
+nest :: Int -> IText -> IText
+nest n d (v,w,m,m') =
+ if v then
+ map (space n++) (d (v,w-n,m,if m'==0 then 0 else m'+n))
+ else
+ d (v,w,m,m')
+
+pretty :: Int->Int->IText->String
+pretty w m d = unlines (d (False,w,m,0))
diff --git a/ghc/lib/hbc/Pretty_mc.hi b/ghc/lib/hbc/Pretty_mc.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_mc.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty_mg.hi b/ghc/lib/hbc/Pretty_mg.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_mg.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty_mp.hi b/ghc/lib/hbc/Pretty_mp.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_mp.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty_mr.hi b/ghc/lib/hbc/Pretty_mr.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_mr.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty_mt.hi b/ghc/lib/hbc/Pretty_mt.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_mt.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty_p.hi b/ghc/lib/hbc/Pretty_p.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_p.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Pretty_t.hi b/ghc/lib/hbc/Pretty_t.hi
new file mode 100644
index 0000000000..9f165c46d4
--- /dev/null
+++ b/ghc/lib/hbc/Pretty_t.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Pretty where
+infixr 8 ^.
+infixr 8 ~.
+type Context = (Bool, Int, Int, Int)
+type IText = (Bool, Int, Int, Int) -> [[Char]]
+(^.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+cseparate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+nest :: Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "LSU(ELLL)" _N_ _N_ #-}
+pretty :: Int -> Int -> ((Bool, Int, Int, Int) -> [[Char]]) -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+separate :: [(Bool, Int, Int, Int) -> [[Char]]] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+text :: [Char] -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(AAAA)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 2 XC 6 \ (u0 :: [Char]) (u1 :: (Bool, Int, Int, Int)) -> case u1 of { _ALG_ _TUP_4 (u2 :: Bool) (u3 :: Int) (u4 :: Int) (u5 :: Int) -> let {(u6 :: [[Char]]) = _!_ _NIL_ [[Char]] []} in _!_ (:) [[Char]] [u0, u6]; _NO_DEFLT_ } _N_ #-}
+(~.) :: ((Bool, Int, Int, Int) -> [[Char]]) -> ((Bool, Int, Int, Int) -> [[Char]]) -> (Bool, Int, Int, Int) -> [[Char]]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLU(ALLL)" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf.hi b/ghc/lib/hbc/Printf.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf.hs b/ghc/lib/hbc/Printf.hs
new file mode 100644
index 0000000000..5f9bb78334
--- /dev/null
+++ b/ghc/lib/hbc/Printf.hs
@@ -0,0 +1,221 @@
+--
+-- A C printf like formatter.
+-- Conversion specs:
+-- - left adjust
+-- num field width
+-- * as num, but taken from argument list
+-- . separates width from precision
+-- Formatting characters:
+-- c Char, Int, Integer
+-- d Char, Int, Integer
+-- o Char, Int, Integer
+-- x Char, Int, Integer
+-- u Char, Int, Integer
+-- f Float, Double
+-- g Float, Double
+-- e Float, Double
+-- s String
+--
+module Printf(UPrintf(..), printf) where
+
+#if defined(__HBC__)
+import LMLfmtf
+#endif
+
+#if defined(__YALE_HASKELL__)
+import PrintfPrims
+#endif
+
+#if defined(__GLASGOW_HASKELL__)
+import PreludeGlaST
+import TyArray ( _ByteArray(..) )
+#endif
+
+data UPrintf = UChar Char | UString String | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+
+printf :: String -> [UPrintf] -> String
+printf "" [] = ""
+printf "" (_:_) = fmterr
+printf ('%':'%':cs) us = '%':printf cs us
+printf ('%':_) [] = argerr
+printf ('%':cs) us@(_:_) = fmt cs us
+printf (c:cs) us = c:printf cs us
+
+fmt :: String -> [UPrintf] -> String
+fmt cs us =
+ let (width, prec, ladj, zero, cs', us') = getSpecs False False cs us
+ adjust (pre, str) =
+ let lstr = length str
+ lpre = length pre
+ fill = if lstr+lpre < width then take (width-(lstr+lpre)) (repeat (if zero then '0' else ' ')) else ""
+ in if ladj then pre ++ str ++ fill else if zero then pre ++ fill ++ str else fill ++ pre ++ str
+ in
+ case cs' of
+ [] -> fmterr
+ c:cs'' ->
+ case us' of
+ [] -> argerr
+ u:us'' ->
+ (case c of
+ 'c' -> adjust ("", [chr (toint u)])
+ 'd' -> adjust (fmti u)
+ 'x' -> adjust ("", fmtu 16 u)
+ 'o' -> adjust ("", fmtu 8 u)
+ 'u' -> adjust ("", fmtu 10 u)
+#if defined __YALE_HASKELL__
+ 'e' -> adjust (fmte prec (todbl u))
+ 'f' -> adjust (fmtf prec (todbl u))
+ 'g' -> adjust (fmtg prec (todbl u))
+#else
+ 'e' -> adjust (dfmt c prec (todbl u))
+ 'f' -> adjust (dfmt c prec (todbl u))
+ 'g' -> adjust (dfmt c prec (todbl u))
+#endif
+ 's' -> adjust ("", tostr u)
+ c -> perror ("bad formatting char " ++ [c])
+ ) ++ printf cs'' us''
+
+fmti (UInt i) = if i < 0 then
+ if i == -i then fmti (UInteger (toInteger i)) else ("-", itos (-i))
+ else
+ ("", itos i)
+fmti (UInteger i) = if i < 0 then ("-", itos (-i)) else ("", itos i)
+fmti (UChar c) = fmti (UInt (ord c))
+fmti u = baderr
+
+fmtu b (UInt i) = if i < 0 then
+ if i == -i then itosb b (maxi - toInteger (i+1) - 1) else itosb b (maxi - toInteger (-i))
+ else
+ itosb b (toInteger i)
+fmtu b (UInteger i) = itosb b i
+fmtu b (UChar c) = itosb b (toInteger (ord c))
+fmtu b u = baderr
+
+maxi :: Integer
+maxi = (toInteger maxInt + 1) * 2
+
+toint (UInt i) = i
+toint (UInteger i) = toInt i
+toint (UChar c) = ord c
+toint u = baderr
+
+tostr (UString s) = s
+tostr u = baderr
+
+todbl (UDouble d) = d
+#if defined(__GLASGOW_HASKELL__)
+todbl (UFloat (F# f)) = D# (float2Double# f) -- What a great system(TM) !
+#else
+todbl (UFloat f) = fromRational (toRational f)
+#endif
+todbl u = baderr
+
+itos n =
+ if n < 10 then
+ [chr (ord '0' + toInt n)]
+ else
+ let (q, r) = quotRem n 10 in
+ itos q ++ [chr (ord '0' + toInt r)]
+
+chars :: Array Int Char
+#if __HASKELL1__ < 3
+chars = array (0,15) (zipWith (:=) [0..] "0123456789abcdef")
+#else
+chars = array (0,15) (zipWith (\x y -> (x,y)) [0..] "0123456789abcdef")
+#endif
+
+itosb :: Integer -> Integer -> String
+itosb b n =
+ if n < b then
+ [chars ! fromInteger n]
+ else
+ let (q, r) = quotRem n b in
+ itosb b q ++ [chars ! fromInteger r]
+
+stoi :: Int -> String -> (Int, String)
+stoi a (c:cs) | isDigit c = stoi (a*10 + ord c - ord '0') cs
+stoi a cs = (a, cs)
+
+getSpecs :: Bool -> Bool -> String -> [UPrintf] -> (Int, Int, Bool, Bool, String, [UPrintf])
+getSpecs l z ('-':cs) us = getSpecs True z cs us
+getSpecs l z ('0':cs) us = getSpecs l True cs us
+getSpecs l z ('*':cs) us =
+ case us of
+ [] -> argerr
+ nu : us' ->
+ let n = toint nu
+ (p, cs'', us'') =
+ case cs of
+ '.':'*':r -> case us' of { [] -> argerr; pu:us'' -> (toint pu, r, us'') }
+ '.':r -> let (n, cs') = stoi 0 r in (n, cs', us')
+ _ -> (-1, cs, us')
+ in (n, p, l, z, cs'', us'')
+getSpecs l z cs@(c:_) us | isDigit c =
+ let (n, cs') = stoi 0 cs
+ (p, cs'') = case cs' of
+ '.':r -> stoi 0 r
+ _ -> (-1, cs')
+ in (n, p, l, z, cs'', us)
+getSpecs l z cs us = (0, -1, l, z, cs, us)
+
+#if !defined(__YALE_HASKELL__)
+dfmt :: Char -> Int -> Double -> (String, String)
+#endif
+
+#if defined(__GLASGOW_HASKELL__)
+dfmt c{-e,f, or g-} prec d
+ = unsafePerformPrimIO (
+ newCharArray (0 :: Int, 511){-pathetic malloc-} `thenStrictlyST` \ sprintf_here ->
+ let
+ sprintf_fmt = "%1" ++ (if prec < 0 then "" else '.':itos prec) ++ [c]
+ in
+ _ccall_ sprintf sprintf_here sprintf_fmt d `seqPrimIO`
+ freezeCharArray sprintf_here `thenST` \ (_ByteArray _ arr#) ->
+ let
+ unpack :: Int# -> [Char]
+ unpack nh = case (ord# (indexCharArray# arr# nh)) of
+ 0# -> []
+ ch -> case (nh +# 1#) of
+ mh -> C# (chr# ch) : unpack mh
+ in
+ returnPrimIO (
+ case (indexCharArray# arr# 0#) of
+ '-'# -> ("-", unpack 1#)
+ _ -> ("" , unpack 0#)
+ )
+ )
+#endif
+
+#if defined(__HBC__)
+dfmt c p d =
+ case fmtf ("1" ++ (if p < 0 then "" else '.':itos p) ++ [c]) d of
+ '-':cs -> ("-", cs)
+ cs -> ("" , cs)
+#endif
+
+#if defined(__YALE_HASKELL__)
+fmte p d =
+ case (primFmte p d) of
+ '-':cs -> ("-",cs)
+ cs -> ("",cs)
+fmtf p d =
+ case (primFmtf p d) of
+ '-':cs -> ("-",cs)
+ cs -> ("",cs)
+fmtg p d =
+ case (primFmtg p d) of
+ '-':cs -> ("-",cs)
+ cs -> ("",cs)
+#endif
+
+perror s = error ("Printf.printf: "++s)
+fmterr = perror "formatting string ended prematurely"
+argerr = perror "argument list ended prematurely"
+baderr = perror "bad argument"
+
+#if defined(__YALE_HASKELL__)
+-- This is needed because standard Haskell does not have toInt
+
+toInt :: Integral a => a -> Int
+toInt x = fromIntegral x
+#endif
diff --git a/ghc/lib/hbc/Printf_mc.hi b/ghc/lib/hbc/Printf_mc.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_mc.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf_mg.hi b/ghc/lib/hbc/Printf_mg.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_mg.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf_mp.hi b/ghc/lib/hbc/Printf_mp.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_mp.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf_mr.hi b/ghc/lib/hbc/Printf_mr.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_mr.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf_mt.hi b/ghc/lib/hbc/Printf_mt.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_mt.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf_p.hi b/ghc/lib/hbc/Printf_p.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_p.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Printf_t.hi b/ghc/lib/hbc/Printf_t.hi
new file mode 100644
index 0000000000..9a3913a6be
--- /dev/null
+++ b/ghc/lib/hbc/Printf_t.hi
@@ -0,0 +1,6 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Printf where
+data UPrintf = UChar Char | UString [Char] | UInt Int | UInteger Integer | UFloat Float | UDouble Double
+printf :: [Char] -> [UPrintf] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort.hi b/ghc/lib/hbc/QSort.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort.hs b/ghc/lib/hbc/QSort.hs
new file mode 100644
index 0000000000..f19eb43d24
--- /dev/null
+++ b/ghc/lib/hbc/QSort.hs
@@ -0,0 +1,47 @@
+{-
+ This module implements a sort function using a variation on
+ quicksort. It is stable, uses no concatenation and compares
+ only with <=.
+
+ sortLe sorts with a given predicate
+ sort uses the <= method
+
+ Author: Lennart Augustsson
+-}
+
+module QSort(sortLe, sort) where
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+sortLe le l = qsort le l []
+
+sort :: (Ord a) => [a] -> [a]
+sort l = qsort (<=) l []
+
+-- qsort is stable and does not concatenate.
+qsort le [] r = r
+qsort le [x] r = x:r
+qsort le (x:xs) r = qpart le x xs [] [] r
+
+-- qpart partitions and sorts the sublists
+qpart le x [] rlt rge r =
+ -- rlt and rge are in reverse order and must be sorted with an
+ -- anti-stable sorting
+ rqsort le rlt (x:rqsort le rge r)
+qpart le x (y:ys) rlt rge r =
+ if le x y then
+ qpart le x ys rlt (y:rge) r
+ else
+ qpart le x ys (y:rlt) rge r
+
+-- rqsort is as qsort but anti-stable, i.e. reverses equal elements
+rqsort le [] r = r
+rqsort le [x] r = x:r
+rqsort le (x:xs) r = rqpart le x xs [] [] r
+
+rqpart le x [] rle rgt r =
+ qsort le rle (x:qsort le rgt r)
+rqpart le x (y:ys) rle rgt r =
+ if le y x then
+ rqpart le x ys (y:rle) rgt r
+ else
+ rqpart le x ys rle (y:rgt) r
+
diff --git a/ghc/lib/hbc/QSort_mc.hi b/ghc/lib/hbc/QSort_mc.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_mc.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort_mg.hi b/ghc/lib/hbc/QSort_mg.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_mg.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort_mp.hi b/ghc/lib/hbc/QSort_mp.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_mp.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort_mr.hi b/ghc/lib/hbc/QSort_mr.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_mr.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort_mt.hi b/ghc/lib/hbc/QSort_mt.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_mt.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort_p.hi b/ghc/lib/hbc/QSort_p.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_p.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/QSort_t.hi b/ghc/lib/hbc/QSort_t.hi
new file mode 100644
index 0000000000..d2016d643e
--- /dev/null
+++ b/ghc/lib/hbc/QSort_t.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface QSort where
+sort :: Ord a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+sortLe :: (a -> a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random.hi b/ghc/lib/hbc/Random.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random.hs b/ghc/lib/hbc/Random.hs
new file mode 100644
index 0000000000..d743876a43
--- /dev/null
+++ b/ghc/lib/hbc/Random.hs
@@ -0,0 +1,59 @@
+{-
+ This module implements a (good) random number generator.
+
+ The June 1988 (v31 #6) issue of the Communications of the ACM has an
+ article by Pierre L'Ecuyer called, "Efficient and Portable Combined
+ Random Number Generators". Here is the Portable Combined Generator of
+ L'Ecuyer for 32-bit computers. It has a period of roughly 2.30584e18.
+
+ Transliterator: Lennart Augustsson
+-}
+
+module Random(randomInts, randomDoubles, normalRandomDoubles) where
+-- Use seeds s1 in 1..2147483562 and s2 in 1..2147483398 to generate
+-- an infinite list of random Ints.
+randomInts :: Int -> Int -> [Int]
+randomInts s1 s2 =
+ if 1 <= s1 && s1 <= 2147483562 then
+ if 1 <= s2 && s2 <= 2147483398 then
+ rands s1 s2
+ else
+ error "randomInts: Bad second seed."
+ else
+ error "randomInts: Bad first seed."
+
+rands :: Int -> Int -> [Int]
+rands s1 s2 = z' : rands s1'' s2''
+ where z' = if z < 1 then z + 2147483562 else z
+ z = s1'' - s2''
+
+ k = s1 `quot` 53668
+ s1' = 40014 * (s1 - k * 53668) - k * 12211
+ s1'' = if s1' < 0 then s1' + 2147483563 else s1'
+
+ k' = s2 `quot` 52774
+ s2' = 40692 * (s2 - k' * 52774) - k' * 3791
+ s2'' = if s2' < 0 then s2' + 2147483399 else s2'
+
+-- Same values for s1 and s2 as above, generates an infinite
+-- list of Doubles uniformly distibuted in (0,1).
+randomDoubles :: Int -> Int -> [Double]
+randomDoubles s1 s2 = map (\x -> fromIntegral x * 4.6566130638969828e-10) (randomInts s1 s2)
+
+-- The normal distribution stuff is stolen from Tim Lambert's
+-- M*****a version
+
+-- normalRandomDoubles is given two seeds and returns an infinite list of random
+-- normal variates with mean 0 and variance 1. (Box Muller method see
+-- "Art of Computer Programming Vol 2")
+normalRandomDoubles :: Int -> Int -> [Double]
+normalRandomDoubles s1 s2 = boxMuller (map (\x->2*x-1) (randomDoubles s1 s2))
+
+-- boxMuller takes a stream of uniform random numbers on [-1,1] and
+-- returns a stream of normally distributed random numbers.
+boxMuller :: [Double] -> [Double]
+boxMuller (x1:x2:xs) | r <= 1 = x1*m : x2*m : rest
+ | otherwise = rest
+ where r = x1*x1 + x2*x2
+ m = sqrt(-2*log r/r)
+ rest = boxMuller xs
diff --git a/ghc/lib/hbc/Random_mc.hi b/ghc/lib/hbc/Random_mc.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_mc.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random_mg.hi b/ghc/lib/hbc/Random_mg.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_mg.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random_mp.hi b/ghc/lib/hbc/Random_mp.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_mp.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random_mr.hi b/ghc/lib/hbc/Random_mr.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_mr.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random_mt.hi b/ghc/lib/hbc/Random_mt.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_mt.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random_p.hi b/ghc/lib/hbc/Random_p.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_p.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Random_t.hi b/ghc/lib/hbc/Random_t.hi
new file mode 100644
index 0000000000..cf2ee358f0
--- /dev/null
+++ b/ghc/lib/hbc/Random_t.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Random where
+normalRandomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomDoubles :: Int -> Int -> [Double]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+randomInts :: Int -> Int -> [Int]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex.hi b/ghc/lib/hbc/SimpleLex.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex.hs b/ghc/lib/hbc/SimpleLex.hs
new file mode 100644
index 0000000000..b039bfe902
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex.hs
@@ -0,0 +1,26 @@
+-- A very simple, but useful, lexical analyser.
+module SimpleLex(simpleLex) where
+
+oper = "!#$%&*+./<=>?@\\^|:~-"
+-- self-delim ()[]{},;`'"_
+isalunum c = isAlphanum c || c == '_'
+
+simpleLex :: String -> [String]
+simpleLex "" = []
+simpleLex (' ' :cs) = simpleLex cs -- ignore white space
+simpleLex ('\t':cs) = simpleLex cs
+simpleLex ('\n':cs) = simpleLex cs
+simpleLex ('-':cs@(c:_)) | isDigit c = -- negative numbers
+ let (t:ts) = simpleLex cs
+ in ('-':t) : ts
+simpleLex (c:cs) | isDigit c = -- numbers (with optional .)
+ let (nn, cs') = span isDigit cs
+ in case cs' of
+ '.':cs'' -> let (d,r) = span isDigit cs''
+ in (c:nn++'.':d) : simpleLex r
+ _ -> (c:nn) : simpleLex cs'
+simpleLex (c:cs) | isAlpha c = -- identifiers
+ let (nn, cs') = span isalunum cs in (c:nn) : simpleLex cs'
+simpleLex (c:cs) | c `elem` oper = -- operator
+ let (nn, cs') = span (`elem` oper) cs in (c:nn) : simpleLex cs'
+simpleLex (c:cs) = [c] : simpleLex cs -- self delimiting chars
diff --git a/ghc/lib/hbc/SimpleLex_mc.hi b/ghc/lib/hbc/SimpleLex_mc.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_mc.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex_mg.hi b/ghc/lib/hbc/SimpleLex_mg.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_mg.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex_mp.hi b/ghc/lib/hbc/SimpleLex_mp.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_mp.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex_mr.hi b/ghc/lib/hbc/SimpleLex_mr.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_mr.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex_mt.hi b/ghc/lib/hbc/SimpleLex_mt.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_mt.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex_p.hi b/ghc/lib/hbc/SimpleLex_p.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_p.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/SimpleLex_t.hi b/ghc/lib/hbc/SimpleLex_t.hi
new file mode 100644
index 0000000000..61e32bf7ca
--- /dev/null
+++ b/ghc/lib/hbc/SimpleLex_t.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SimpleLex where
+simpleLex :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time.hi b/ghc/lib/hbc/Time.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time.hs b/ghc/lib/hbc/Time.hs
new file mode 100644
index 0000000000..ff32275073
--- /dev/null
+++ b/ghc/lib/hbc/Time.hs
@@ -0,0 +1,53 @@
+module Time(Time(..), dblToTime, timeToDbl, timeToString) where
+-- year mon day hour min sec ... wday
+data Time = Time Int Int Int Int Int Int Double Int deriving (Eq, Ord, Text)
+
+isleap :: Int -> Bool
+isleap n = n `rem` 4 == 0 -- good enough for the UNIX time span
+
+daysin :: Int -> Int
+daysin n = if isleap n then 366 else 365
+
+monthlen :: Array (Bool, Int) Int
+#if __HASKELL1__ < 3
+monthlen = array ((False, 1), (True, 12)) (zipWith3 (\ a b c -> (a,b):=c) (repeat False) [1..] [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] ++
+ zipWith3 (\ a b c -> (a,b):=c) (repeat True) [1..] [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31])
+#else
+monthlen = array ((False, 1), (True, 12)) (zipWith3 (\ a b c -> ((a,b),c)) (repeat False) [1..] [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] ++
+ zipWith3 (\ a b c -> ((a,b),c)) (repeat True) [1..] [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31])
+#endif
+
+dblToTime :: Double -> Time
+dblToTime d =
+ let t = truncate d :: Int
+ (days, rem) = t `quotRem` (60*60*24)
+ (hour, rem') = rem `quotRem` (60*60)
+ (min, sec) = rem' `quotRem` 60
+ wday = (days+3) `mod` 7
+ (year, days')= until (\ (y, d) -> d < daysin y) (\ (y, d) -> (y+1, d - daysin y)) (1970, days)
+ (mon, day) = until (\ (m, d) -> d < monthlen!(isleap year, m)) (\ (m, d) -> (m+1, d - monthlen!(isleap year, m))) (1, days')
+ in Time year mon (day+1) hour min sec (d - fromInt t) wday
+
+timeToDbl :: Time -> Double
+timeToDbl (Time year mon day hour min sec sdec _) =
+ let year' = year - 1970
+ days = year' * 365 + (year'+1) `div` 4 +
+ sum [monthlen!(isleap year, m) | m<-[1..mon-1]] + day - 1
+ secs = ((days*24 + hour) * 60 + min) * 60 + sec
+ in fromInt secs + sdec
+
+show2 :: Int -> String
+show2 x = [chr (x `quot` 10 + ord '0'), chr (x `rem` 10 + ord '0')]
+
+weekdays = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
+
+timeToString :: Time -> String
+timeToString (Time year mon day hour min sec sdec wday) =
+ show year ++ "-" ++ show2 mon ++ "-" ++ show2 day ++ " " ++
+ show2 hour ++ ":" ++ show2 min ++ ":" ++ show2 sec ++
+ tail (take 5 (show sdec)) ++ " " ++ weekdays!!wday
+
+#if defined(__YALE_HASKELL__)
+-- For those of you who don't have fromInt
+fromInt = fromInteger . toInteger
+#endif
diff --git a/ghc/lib/hbc/Time_mc.hi b/ghc/lib/hbc/Time_mc.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_mc.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time_mg.hi b/ghc/lib/hbc/Time_mg.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_mg.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time_mp.hi b/ghc/lib/hbc/Time_mp.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_mp.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time_mr.hi b/ghc/lib/hbc/Time_mr.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_mr.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time_mt.hi b/ghc/lib/hbc/Time_mt.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_mt.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time_p.hi b/ghc/lib/hbc/Time_p.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_p.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Time_t.hi b/ghc/lib/hbc/Time_t.hi
new file mode 100644
index 0000000000..79e46a74fb
--- /dev/null
+++ b/ghc/lib/hbc/Time_t.hi
@@ -0,0 +1,29 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Time where
+data Time = Time Int Int Int Int Int Int Double Int
+dblToTime :: Double -> Time
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+timeToDbl :: Time -> Double
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(P)A)" _N_ _N_ #-}
+timeToString :: Time -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Eq Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Time -> Time -> Bool), (Time -> Time -> Bool)] [_CONSTM_ Eq (==) (Time), _CONSTM_ Eq (/=) (Time)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Ord Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Time}}, (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Bool), (Time -> Time -> Time), (Time -> Time -> Time), (Time -> Time -> _CMP_TAG)] [_DFUN_ Eq (Time), _CONSTM_ Ord (<) (Time), _CONSTM_ Ord (<=) (Time), _CONSTM_ Ord (>=) (Time), _CONSTM_ Ord (>) (Time), _CONSTM_ Ord max (Time), _CONSTM_ Ord min (Time), _CONSTM_ Ord _tagCmp (Time)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLLL)U(U(P)LLLLLLL)" _N_ _N_ #-}
+instance Text Time
+ {-# GHC_PRAGMA _M_ Time {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Time, [Char])]), (Int -> Time -> [Char] -> [Char]), ([Char] -> [([Time], [Char])]), ([Time] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Time), _CONSTM_ Text showsPrec (Time), _CONSTM_ Text readList (Time), _CONSTM_ Text showList (Time)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LLLLLLLL)" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/hbc/Trace.hi b/ghc/lib/hbc/Trace.hi
new file mode 100644
index 0000000000..742622829f
--- /dev/null
+++ b/ghc/lib/hbc/Trace.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Trace where
+trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _trace _N_ #-}
+
diff --git a/ghc/lib/hbc/Trace.hs b/ghc/lib/hbc/Trace.hs
new file mode 100644
index 0000000000..a293a5411d
--- /dev/null
+++ b/ghc/lib/hbc/Trace.hs
@@ -0,0 +1,2 @@
+module Trace where
+trace x y = _trace x y
diff --git a/ghc/lib/hbc/Trace_mc.hi b/ghc/lib/hbc/Trace_mc.hi
new file mode 100644
index 0000000000..742622829f
--- /dev/null
+++ b/ghc/lib/hbc/Trace_mc.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Trace where
+trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _trace _N_ #-}
+
diff --git a/ghc/lib/hbc/Trace_mg.hi b/ghc/lib/hbc/Trace_mg.hi
new file mode 100644
index 0000000000..742622829f
--- /dev/null
+++ b/ghc/lib/hbc/Trace_mg.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Trace where
+trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _trace _N_ #-}
+
diff --git a/ghc/lib/hbc/Trace_mp.hi b/ghc/lib/hbc/Trace_mp.hi
new file mode 100644
index 0000000000..742622829f
--- /dev/null
+++ b/ghc/lib/hbc/Trace_mp.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Trace where
+trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _trace _N_ #-}
+
diff --git a/ghc/lib/hbc/Trace_p.hi b/ghc/lib/hbc/Trace_p.hi
new file mode 100644
index 0000000000..742622829f
--- /dev/null
+++ b/ghc/lib/hbc/Trace_p.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Trace where
+trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _trace _N_ #-}
+
diff --git a/ghc/lib/hbc/Trace_t.hi b/ghc/lib/hbc/Trace_t.hi
new file mode 100644
index 0000000000..742622829f
--- /dev/null
+++ b/ghc/lib/hbc/Trace_t.hi
@@ -0,0 +1,5 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Trace where
+trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _trace _N_ #-}
+
diff --git a/ghc/lib/hbc/Word.hi b/ghc/lib/hbc/Word.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word.hs b/ghc/lib/hbc/Word.hs
new file mode 100644
index 0000000000..82dc81fb9b
--- /dev/null
+++ b/ghc/lib/hbc/Word.hs
@@ -0,0 +1,156 @@
+-- mimic "hbc_library" module, Word.
+-- [seriously non-std Haskell here]
+--
+module Word (
+ Bits(..), -- class
+ Byte, Short, Word, -- data types: abstract
+ byteToInt, shortToInt, wordToInt,
+ wordToShorts, wordToBytes, bytesToString
+ ) where
+
+infixl 8 `bitLsh`, `bitRsh`
+infixl 7 `bitAnd`
+infixl 6 `bitXor`
+infixl 5 `bitOr`
+
+class Bits a where
+ bitAnd, bitOr, bitXor :: a -> a -> a
+ bitCompl :: a -> a
+ bitRsh, bitLsh :: a -> Int -> a
+ bitSwap :: a -> a
+ bit0 :: a
+ bitSize :: a -> Int
+
+------------------------------------------------------------------
+data Word = Word Word# deriving (Eq, Ord)
+
+instance Bits Word where
+ bitAnd (Word x) (Word y) = case and# x y of z -> Word z
+ bitOr (Word x) (Word y) = case or# x y of z -> Word z
+ bitXor (Word x) (Word y) = error "later..." -- Word (XOR x y)
+ bitCompl (Word x) = case not# x of x' -> Word x'
+ bitLsh (Word x) (I# y) = case shiftL# x y of z -> Word z
+ bitRsh (Word x) (I# y) = case shiftRL# x y of z -> Word z
+ bitSwap (Word x) = --Word (OR (LSH x 16) (AND (RSH x 16) 65535))
+ case shiftL# x 16# of { a# ->
+ case shiftRL# x 16# of { b# ->
+ case and# b# (i2w 65535#) of { c# ->
+ case or# a# c# of { r# ->
+ Word r# }}}}
+ bit0 = Word (i2w 1#)
+ bitSize (Word _) = 32
+
+w2i x = word2Int# x
+i2w x = int2Word# x
+
+instance Num Word where
+ Word x + Word y = case plusInt# (w2i x) (w2i y) of z -> Word (i2w z)
+ Word x - Word y = case minusInt# (w2i x) (w2i y) of z -> Word (i2w z)
+ Word x * Word y = case timesInt# (w2i x) (w2i y) of z -> Word (i2w z)
+ negate (Word x) = case negateInt# (w2i x) of z -> Word (i2w z)
+ fromInteger (J# a# s# d#)
+ = case integer2Int# a# s# d# of { z# ->
+ Word (i2w z#) }
+ fromInt (I# x) = Word (i2w x)
+
+instance Text Word where
+ showsPrec _ (Word w) =
+ let i = toInteger (I# (w2i w)) + (if geWord# w (i2w 0#) then 0 else 2*(toInteger maxInt + 1))
+ in showString (conv 8 i)
+
+conv :: Int -> Integer -> String
+conv 0 _ = ""
+conv n i = conv (n-1) q ++ ["0123456789ABCDEF"!!r] where (q, r) = quotRem i 16
+
+------------------------------------------------------------------
+data Short = Short Word# deriving (Eq, Ord)
+
+sHORTMASK x = and# x (i2w 65535#)
+
+instance Bits Short where
+ bitAnd (Short x) (Short y) = case and# x y of z -> Short z
+ bitOr (Short x) (Short y) = case or# x y of z -> Short z
+ bitXor (Short x) (Short y) = error "later..." -- Short (XOR x y)
+ bitCompl (Short x) = case not# x of x' -> Short (sHORTMASK x')
+ bitLsh (Short x) (I# y) = case shiftL# x y of z -> Short (sHORTMASK z)
+ bitRsh (Short x) (I# y) = case shiftRL# x y of z -> Short z
+ bitSwap (Short x) = --Short (SHORTMASK(OR (LSH x 8) (AND (RSH x 8) 255)))
+ case shiftL# x 8# of { a# ->
+ case shiftRL# x 8# of { b# ->
+ case and# b# (i2w 255#) of { c# ->
+ case or# a# c# of { r# ->
+ Short (sHORTMASK r#) }}}}
+ bit0 = Short (i2w 1#)
+ bitSize (Short _) = 16
+
+instance Num Short where
+ Short x + Short y = case plusInt# (w2i x) (w2i y) of z -> Short (sHORTMASK (i2w z))
+ Short x - Short y = case minusInt# (w2i x) (w2i y) of z -> Short (sHORTMASK (i2w z))
+ Short x * Short y = case timesInt# (w2i x) (w2i y) of z -> Short (sHORTMASK (i2w z))
+ negate (Short x) = case negateInt# (w2i x) of z -> Short (sHORTMASK (i2w z))
+ fromInteger (J# a# s# d#)
+ = case integer2Int# a# s# d# of { z# ->
+ Short (sHORTMASK (i2w z#)) }
+ fromInt (I# x) = Short (sHORTMASK (i2w x))
+
+instance Text Short where
+ showsPrec _ (Short w) =
+ let i = toInteger (I# (w2i w))
+ in showString (conv 4 i)
+-- showsType _ = showString "Short"
+
+------------------------------------------------------------------
+data Byte = Byte Word# deriving (Eq, Ord)
+
+bYTEMASK x = and# x (i2w 255#)
+
+instance Bits Byte where
+ bitAnd (Byte x) (Byte y) = case and# x y of z -> Byte z
+ bitOr (Byte x) (Byte y) = case or# x y of z -> Byte z
+ bitXor (Byte x) (Byte y) = error "later..." -- Byte (XOR x y)
+ bitCompl (Byte x) = case not# x of x' -> Byte (bYTEMASK x')
+ bitLsh (Byte x) (I# y) = case shiftL# x y of z -> Byte (bYTEMASK z)
+ bitRsh (Byte x) (I# y) = case shiftRL# x y of z -> Byte z
+ bitSwap (Byte x) = --Byte (BYTEMASK(OR (LSH x 4) (AND (RSH x 8) 15)))
+ case shiftL# x 4# of { a# ->
+ case shiftRL# x 8# of { b# ->
+ case and# b# (i2w 15#) of { c# ->
+ case or# a# c# of { r# ->
+ Byte (bYTEMASK r#) }}}}
+ bit0 = Byte (i2w 1#)
+ bitSize (Byte _) = 8
+
+instance Num Byte where
+ Byte x + Byte y = case plusInt# (w2i x) (w2i y) of z -> Byte (bYTEMASK (i2w z))
+ Byte x - Byte y = case minusInt# (w2i x) (w2i y) of z -> Byte (bYTEMASK (i2w z))
+ Byte x * Byte y = case timesInt# (w2i x) (w2i y) of z -> Byte (bYTEMASK (i2w z))
+ negate (Byte x) = case negateInt# (w2i x) of z -> Byte (bYTEMASK (i2w z))
+ fromInteger (J# a# s# d#)
+ = case integer2Int# a# s# d# of { z# ->
+ Byte (bYTEMASK (i2w z#)) }
+ fromInt (I# x) = Byte (bYTEMASK (i2w x))
+
+instance Text Byte where
+ showsPrec _ (Byte w) =
+ let i = toInteger (I# (w2i w))
+ in showString (conv 2 i)
+-- showsType _ = showString "Byte"
+
+------------------------------------------------------------------
+wordToShorts (Word w) = [Short (sHORTMASK(shiftRL# w 16#)), Short (sHORTMASK(w))]
+wordToBytes (Word w) = [Byte (bYTEMASK(shiftRL# w 24#)), Byte (bYTEMASK(shiftRL# w 16#)), Byte (bYTEMASK(shiftRL# w 8#)), Byte (bYTEMASK(w))]
+
+bytesToString :: [Byte] -> String
+bytesToString bs = map (\ (Byte b) -> chr (I# (w2i b))) bs
+
+stringToBytes :: String -> [Byte]
+stringToBytes cs = map (\c -> Byte (case ord c of {I# i -> bYTEMASK (i2w i)})) cs
+
+wordToInt :: Word -> Int
+wordToInt (Word w) = I# (w2i w)
+
+shortToInt :: Short -> Int
+shortToInt (Short w) = I# (w2i w)
+
+byteToInt :: Byte -> Int
+byteToInt (Byte w) = I# (w2i w)
diff --git a/ghc/lib/hbc/Word_mc.hi b/ghc/lib/hbc/Word_mc.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_mc.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word_mg.hi b/ghc/lib/hbc/Word_mg.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_mg.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word_mp.hi b/ghc/lib/hbc/Word_mp.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_mp.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word_mr.hi b/ghc/lib/hbc/Word_mr.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_mr.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word_mt.hi b/ghc/lib/hbc/Word_mt.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_mt.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word_p.hi b/ghc/lib/hbc/Word_p.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_p.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/hbc/Word_t.hi b/ghc/lib/hbc/Word_t.hi
new file mode 100644
index 0000000000..c994512c12
--- /dev/null
+++ b/ghc/lib/hbc/Word_t.hi
@@ -0,0 +1,171 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Word where
+infixl 7 `bitAnd`
+infixl 8 `bitLsh`
+infixl 5 `bitOr`
+infixl 8 `bitRsh`
+infixl 6 `bitXor`
+class Bits a where
+ bitAnd :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitAnd\"", u2, u3 ] _N_ #-}
+ bitOr :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitOr\"", u2, u3 ] _N_ #-}
+ bitXor :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitXor\"", u2, u3 ] _N_ #-}
+ bitCompl :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitCompl\"", u2 ] _N_ #-}
+ bitRsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitRsh\"", u2, u3 ] _N_ #-}
+ bitLsh :: a -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (u0 -> Int -> u0) } [ _NOREP_S_ "%DWord.Bits.bitLsh\"", u2, u3 ] _N_ #-}
+ bitSwap :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DWord.Bits.bitSwap\"", u2 ] _N_ #-}
+ bit0 :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Bits u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DWord.Bits.bit0\"" ] _N_ #-}
+ bitSize :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> Int -> u0, u0 -> Int -> u0, u0 -> u0, u0, u0 -> Int)) -> case u1 of { _ALG_ _TUP_9 (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> Int -> u0) (u7 :: u0 -> Int -> u0) (u8 :: u0 -> u0) (u9 :: u0) (ua :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Bits u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DWord.Bits.bitSize\"", u2 ] _N_ #-}
+data Byte {-# GHC_PRAGMA Byte Word# #-}
+data Short {-# GHC_PRAGMA Short Word# #-}
+data Word {-# GHC_PRAGMA Word Word# #-}
+byteToInt :: Byte -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+bytesToString :: [Byte] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+shortToInt :: Short -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToBytes :: Word -> [Byte]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+wordToInt :: Word -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ word2Int# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ word2Int# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+wordToShorts :: Word -> [Short]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Byte -> Byte -> Bool), (Byte -> Byte -> Bool)] [_CONSTM_ Eq (==) (Byte), _CONSTM_ Eq (/=) (Byte)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Short -> Short -> Bool), (Short -> Short -> Bool)] [_CONSTM_ Eq (==) (Short), _CONSTM_ Eq (/=) (Short)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Word -> Word -> Bool), (Word -> Word -> Bool)] [_CONSTM_ Eq (==) (Word), _CONSTM_ Eq (/=) (Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ eqWord# [] [u0, u1] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ eqWord# [] [u2, u3] of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Byte}}, {{Text Byte}}, (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Byte -> Byte), (Integer -> Byte), (Int -> Byte)] [_DFUN_ Eq (Byte), _DFUN_ Text (Byte), _CONSTM_ Num (+) (Byte), _CONSTM_ Num (-) (Byte), _CONSTM_ Num (*) (Byte), _CONSTM_ Num negate (Byte), _CONSTM_ Num abs (Byte), _CONSTM_ Num signum (Byte), _CONSTM_ Num fromInteger (Byte), _CONSTM_ Num fromInt (Byte)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Byte) -> _APP_ _TYAPP_ patError# { (Byte -> Byte) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Byte [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Short}}, {{Text Short}}, (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Short), (Short -> Short), (Integer -> Short), (Int -> Short)] [_DFUN_ Eq (Short), _DFUN_ Text (Short), _CONSTM_ Num (+) (Short), _CONSTM_ Num (-) (Short), _CONSTM_ Num (*) (Short), _CONSTM_ Num negate (Short), _CONSTM_ Num abs (Short), _CONSTM_ Num signum (Short), _CONSTM_ Num fromInteger (Short), _CONSTM_ Num fromInt (Short)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Short) -> _APP_ _TYAPP_ patError# { (Short -> Short) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } } } _N_} _F_ _ALWAYS_ \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u6 :: Word#) -> case _#_ and# [] [u5, u6] of { _PRIM_ (u7 :: Word#) -> _!_ _ORIG_ Word Short [] [u7] } } } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Num Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Word}}, {{Text Word}}, (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Word), (Word -> Word), (Integer -> Word), (Int -> Word)] [_DFUN_ Eq (Word), _DFUN_ Text (Word), _CONSTM_ Num (+) (Word), _CONSTM_ Num (-) (Word), _CONSTM_ Num (*) (Word), _CONSTM_ Num negate (Word), _CONSTM_ Num abs (Word), _CONSTM_ Num signum (Word), _CONSTM_ Num fromInteger (Word), _CONSTM_ Num fromInt (Word)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u0 ] _N_,
+ signum = _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word) -> _APP_ _TYAPP_ patError# { (Word -> Word) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u0 ] _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> case _#_ int2Word# [] [u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] } } _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> case _#_ int2Word# [] [u4] of { _PRIM_ (u5 :: Word#) -> _!_ _ORIG_ Word Word [] [u5] } }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Word# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Word# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Byte}}, (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Bool), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> _CMP_TAG)] [_DFUN_ Eq (Byte), _CONSTM_ Ord (<) (Byte), _CONSTM_ Ord (<=) (Byte), _CONSTM_ Ord (>=) (Byte), _CONSTM_ Ord (>) (Byte), _CONSTM_ Ord max (Byte), _CONSTM_ Ord min (Byte), _CONSTM_ Ord _tagCmp (Byte)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Short}}, (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Bool), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> _CMP_TAG)] [_DFUN_ Eq (Short), _CONSTM_ Ord (<) (Short), _CONSTM_ Ord (<=) (Short), _CONSTM_ Ord (>=) (Short), _CONSTM_ Ord (>) (Short), _CONSTM_ Ord max (Short), _CONSTM_ Ord min (Short), _CONSTM_ Ord _tagCmp (Short)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Word}}, (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Bool), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> _CMP_TAG)] [_DFUN_ Eq (Word), _CONSTM_ Ord (<) (Word), _CONSTM_ Ord (<=) (Word), _CONSTM_ Ord (>=) (Word), _CONSTM_ Ord (>) (Word), _CONSTM_ Ord max (Word), _CONSTM_ Ord min (Word), _CONSTM_ Ord _tagCmp (Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Byte, [Char])]), (Int -> Byte -> [Char] -> [Char]), ([Char] -> [([Byte], [Char])]), ([Byte] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Byte), _CONSTM_ Text showsPrec (Byte), _CONSTM_ Text readList (Byte), _CONSTM_ Text showList (Byte)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Byte, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Short, [Char])]), (Int -> Short -> [Char] -> [Char]), ([Char] -> [([Short], [Char])]), ([Short] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Short), _CONSTM_ Text showsPrec (Short), _CONSTM_ Text readList (Short), _CONSTM_ Text showList (Short)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Short, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Word, [Char])]), (Int -> Word -> [Char] -> [Char]), ([Char] -> [([Word], [Char])]), ([Word] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Word), _CONSTM_ Text showsPrec (Word), _CONSTM_ Text readList (Word), _CONSTM_ Text showList (Word)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(Word, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Bits Byte
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte -> Byte), (Byte -> Byte), (Byte -> Int -> Byte), (Byte -> Int -> Byte), (Byte -> Byte), Byte, (Byte -> Int)] [_CONSTM_ Bits bitAnd (Byte), _CONSTM_ Bits bitOr (Byte), _CONSTM_ Bits bitXor (Byte), _CONSTM_ Bits bitCompl (Byte), _CONSTM_ Bits bitRsh (Byte), _CONSTM_ Bits bitLsh (Byte), _CONSTM_ Bits bitSwap (Byte), _CONSTM_ Bits bit0 (Byte), _CONSTM_ Bits bitSize (Byte)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Byte) (u1 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Byte (u3 :: Word#) -> _APP_ _TYAPP_ error { Byte } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Byte [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Byte [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Byte) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Byte (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [255#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Byte [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Byte [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [8#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Byte) -> case u0 of { _ALG_ _ORIG_ Word Byte (u1 :: Word#) -> _!_ I# [] [8#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Short
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short -> Short), (Short -> Short), (Short -> Int -> Short), (Short -> Int -> Short), (Short -> Short), Short, (Short -> Int)] [_CONSTM_ Bits bitAnd (Short), _CONSTM_ Bits bitOr (Short), _CONSTM_ Bits bitXor (Short), _CONSTM_ Bits bitCompl (Short), _CONSTM_ Bits bitRsh (Short), _CONSTM_ Bits bitLsh (Short), _CONSTM_ Bits bitSwap (Short), _CONSTM_ Bits bit0 (Short), _CONSTM_ Bits bitSize (Short)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Short) (u1 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Short (u3 :: Word#) -> _APP_ _TYAPP_ error { Short } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Short [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Short [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Short) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Short (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> case _#_ int2Word# [] [65535#] of { _PRIM_ (u5 :: Word#) -> case _#_ and# [] [u4, u5] of { _PRIM_ (u6 :: Word#) -> _!_ _ORIG_ Word Short [] [u6] } } }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Short [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [16#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Short) -> case u0 of { _ALG_ _ORIG_ Word Short (u1 :: Word#) -> _!_ I# [] [16#]; _NO_DEFLT_ } _N_ #-}
+instance Bits Word
+ {-# GHC_PRAGMA _M_ Word {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 10 _!_ _TUP_9 [(Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word -> Word), (Word -> Word), (Word -> Int -> Word), (Word -> Int -> Word), (Word -> Word), Word, (Word -> Int)] [_CONSTM_ Bits bitAnd (Word), _CONSTM_ Bits bitOr (Word), _CONSTM_ Bits bitXor (Word), _CONSTM_ Bits bitCompl (Word), _CONSTM_ Bits bitRsh (Word), _CONSTM_ Bits bitLsh (Word), _CONSTM_ Bits bitSwap (Word), _CONSTM_ Bits bit0 (Word), _CONSTM_ Bits bitSize (Word)] _N_
+ bitAnd = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitOr = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitXor = _A_ 2 _U_ 11 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Word) (u1 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ _ORIG_ Word Word (u3 :: Word#) -> _APP_ _TYAPP_ error { Word } [ _NOREP_S_ "later..." ]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitCompl = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Word#) -> case _#_ not# [] [u0] of { _PRIM_ (u1 :: Word#) -> _!_ _ORIG_ Word Word [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> case _#_ not# [] [u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] }; _NO_DEFLT_ } _N_,
+ bitRsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftRL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftRL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitLsh = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Int#) -> case _#_ shiftL# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ _ORIG_ Word Word [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Word) (u1 :: Int) -> case u0 of { _ALG_ _ORIG_ Word Word (u2 :: Word#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ shiftL# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ _ORIG_ Word Word [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ bitSwap = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ bit0 = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 case _#_ int2Word# [] [1#] of { _PRIM_ (u0 :: Word#) -> _!_ _ORIG_ Word Word [] [u0] } _N_,
+ bitSize = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Word#) -> _!_ I# [] [32#] _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Word) -> case u0 of { _ALG_ _ORIG_ Word Word (u1 :: Word#) -> _!_ I# [] [32#]; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/make_extra_deps b/ghc/lib/make_extra_deps
new file mode 100644
index 0000000000..3882e895f4
--- /dev/null
+++ b/ghc/lib/make_extra_deps
@@ -0,0 +1,31 @@
+#! /usr/local/bin/perl
+# see comments in ghc/lib/Jmakefile
+
+open(MKF, "< Makefile") || die "Can't open Makefile\n";
+
+# read down to start of dependencies
+while (<MKF>) {
+ last if /# DO NOT DELETE: Beginning of Haskell dependencies/;
+}
+
+# slurp through dependencies, duplicating them
+while (<MKF>) {
+ last if /# DO NOT DELETE: End of Haskell dependencies/;
+ chop;
+
+ foreach $k ( '_p', '_t',
+ '_mc', '_mr', '_mt', '_mp', '_mg',
+ '_2s', '_1s', '_du',
+ '_a', '_b', '_c', '_d', '_e', '_f', '_g', '_h',
+ '_i', '_j', '_k', '_o', '_m', '_n', '_o' ) {
+ $copy = $_;
+
+ # change all .hc and .hi
+ $copy =~ s/\.hc\b/$k.hc/;
+ $copy =~ s/\.hi\b/$k.hi/;
+
+ print STDOUT "IfGhcBuild$k(", $copy, ")\n";
+ }
+}
+
+close(MKF) || die "Failed in closing Makefile\n";
diff --git a/ghc/lib/prelude/Builtin.hi b/ghc/lib/prelude/Builtin.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin.hs b/ghc/lib/prelude/Builtin.hs
new file mode 100644
index 0000000000..c710c9afaf
--- /dev/null
+++ b/ghc/lib/prelude/Builtin.hs
@@ -0,0 +1,114 @@
+module PreludeBuiltin (
+ _runST,
+ _trace,
+ absent#,
+ error,
+ patError#
+ ) where
+
+import Cls
+import Core
+import IInt
+import List ( (++), foldr, takeWhile )
+import TyArray ( Array(..) )
+import PreludeErrIO ( errorIO )
+import PreludeGlaST -- state transformer stuff
+import PreludeDialogueIO ( appendChan# )
+#ifndef __PARALLEL_HASKELL__
+import PreludeGlaMisc ( deRefStablePtr )
+#endif
+import PS ( _PackedString, _unpackPS )
+import Stdio ( _FILE )
+import Text
+
+---------------------------------------------------------------
+{- OLD:
+packCString# :: [Char] -> ByteArray#
+
+packCString# str = packString# str -- ToDo: more satisfactorily
+-}
+
+---------------------------------------------------------------
+-- ******** defns of `error' and `trace' using Glasgow IO *****
+-- No specialised versions are required for these bottoming Ids
+
+error :: String -> a
+error s = error__ ( \ x -> _ccall_ ErrorHdrHook x ) s
+
+error__ :: (_FILE -> PrimIO ()) -> String -> a
+
+error__ msg_hdr s
+#ifdef __PARALLEL_HASKELL__
+ = errorIO (msg_hdr sTDERR{-msg hdr-} `seqPrimIO`
+ _ccall_ fflush sTDERR `seqPrimIO`
+ appendChan# sTDERR s `seqPrimIO`
+ _ccall_ fflush sTDERR `seqPrimIO`
+ _ccall_ stg_exit (1::Int)
+ )
+#else
+ = errorIO (msg_hdr sTDERR{-msg hdr-} `seqPrimIO`
+ _ccall_ fflush sTDERR `seqPrimIO`
+ appendChan# sTDERR s `seqPrimIO`
+ _ccall_ fflush sTDERR `seqPrimIO`
+ _ccall_ getErrorHandler `thenPrimIO` \ errorHandler ->
+ if errorHandler == (-1::Int)
+ then _ccall_ stg_exit (1::Int)
+ else
+ _casm_ ``%r = (StgStablePtr)(%0);'' errorHandler
+ `thenPrimIO` \ osptr ->
+ _ccall_ decrementErrorCount `thenPrimIO` \ () ->
+ deRefStablePtr osptr `thenPrimIO` \ oact ->
+ oact
+ )
+#endif {- !parallel -}
+ where
+ sTDERR = (``stderr'' :: _FILE)
+
+absent# = error "Oops! The program has entered an `absent' argument!\n"
+
+---------------------------------------------------------------
+_runST m = case m (S# realWorld#) of
+ (r,_) -> r
+
+---------------------------------------------------------------
+-- Used for compiler-generated error message;
+-- encoding saves bytes of string junk.
+
+patError# :: String -> a
+
+patError# encoded_msg
+ = error__ (\ x -> _ccall_ PatErrorHdrHook x) (expand (encoded_msg ++ "\n"))
+ where
+ expand [] = []
+ expand ('%':next:rest)
+ = let
+ decoded
+ = case next of
+ '%' -> "%"
+ 'D' -> "No default method for \""
+ 'N' -> ": non-exhaustive guards"
+ 'F' -> "incomplete pattern(s) to match in function \""
+ 'L' -> "pattern-matching failed in lambda"
+ 'C' -> "pattern-matching failed in case"
+ '~' -> ": pattern-match failed on an irrefutable pattern"
+ 'l' -> "\", line "
+ _ -> error ("BAD call to builtin patError#:" ++ (next:rest))
+ in
+ decoded ++ expand rest
+
+ expand (c:rest) = c : expand rest
+
+---------------------------------------------------------------
+-- ******** defn of `_trace' using Glasgow IO *******
+
+--{-# GENERATE_SPECS _trace a #-}
+_trace :: String -> a -> a
+
+_trace string expr
+ = unsafePerformPrimIO (
+ ((_ccall_ PreTraceHook sTDERR{-msg-})::PrimIO ()) `seqPrimIO`
+ appendChan# sTDERR string `seqPrimIO`
+ ((_ccall_ PostTraceHook sTDERR{-msg-})::PrimIO ()) `seqPrimIO`
+ returnPrimIO expr )
+ where
+ sTDERR = (``stderr'' :: _FILE)
diff --git a/ghc/lib/prelude/Builtin_mc.hi b/ghc/lib/prelude/Builtin_mc.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_mc.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin_mg.hi b/ghc/lib/prelude/Builtin_mg.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_mg.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin_mp.hi b/ghc/lib/prelude/Builtin_mp.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_mp.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin_mr.hi b/ghc/lib/prelude/Builtin_mr.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_mr.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin_mt.hi b/ghc/lib/prelude/Builtin_mt.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_mt.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin_p.hi b/ghc/lib/prelude/Builtin_p.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_p.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Builtin_t.hi b/ghc/lib/prelude/Builtin_t.hi
new file mode 100644
index 0000000000..c3960218db
--- /dev/null
+++ b/ghc/lib/prelude/Builtin_t.hi
@@ -0,0 +1,13 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+_runST :: (_State _RealWorld -> (b, a)) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_trace :: [Char] -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+absent# :: a
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 1 0 X 2 _/\_ u0 -> _APP_ _TYAPP_ _ORIG_ PreludeBuiltin error { u0 } [ _NOREP_S_ "Oops! The program has entered an `absent' argument!\n" ] _N_ #-}
+error :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _N_ _N_ #-}
+patError# :: [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ _!_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel.hi b/ghc/lib/prelude/Channel.hi
new file mode 100644
index 0000000000..dee15c0193
--- /dev/null
+++ b/ghc/lib/prelude/Channel.hi
@@ -0,0 +1,19 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Channel where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data Chan a
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AL)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)A)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AL)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LA)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel.lhs b/ghc/lib/prelude/Channel.lhs
new file mode 100644
index 0000000000..4019287596
--- /dev/null
+++ b/ghc/lib/prelude/Channel.lhs
@@ -0,0 +1,120 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[Channel]{Unbounded Channels}
+
+Standard, unbounded channel abstraction.
+
+\begin{code}
+module Channel
+ (
+ {- abstract -}
+ Chan,
+
+ newChan, -- :: IO (Chan a)
+ putChan, -- :: Chan a -> a -> IO ()
+ getChan, -- :: Chan a -> IO a
+ dupChan, -- :: Chan a -> IO (Chan a)
+ unGetChan, -- :: Chan a -> a -> IO ()
+ getChanContents -- :: Chan a -> IO [a]
+
+ ) where
+
+import PreludeGlaST
+import PreludePrimIO ( newEmptyMVar, newMVar, putMVar,
+ readMVar, takeMVar, _MVar
+ )
+\end{code}
+
+A channel is represented by two @MVar@s keeping track of the two ends
+of the channel contents,i.e., the read- and write ends. Empty @MVar@s
+are used to handle consumers trying to read from an empty channel.
+
+\begin{code}
+
+data Chan a
+ = Chan (_MVar (Stream a))
+ (_MVar (Stream a))
+
+type Stream a = _MVar (ChItem a)
+
+data ChItem a = ChItem a (Stream a)
+
+
+\end{code}
+
+See the Concurrent Haskell paper for a diagram explaining the
+how the different channel operations proceed.
+
+@newChan@ sets up the read and write end of a channel by initialising
+these two @MVar@s with an empty @MVar@.
+
+\begin{code}
+
+newChan :: IO (Chan a)
+newChan
+ = newEmptyMVar >>= \ hole ->
+ newMVar hole >>= \ read ->
+ newMVar hole >>= \ write ->
+ return (Chan read write)
+
+\end{code}
+
+To put an element on a channel, a new hole at the write end is created.
+What was previously the empty @MVar@ at the back of the channel is then
+filled in with a new stream element holding the entered value and the
+new hole.
+
+\begin{code}
+
+putChan :: Chan a -> a -> IO ()
+putChan (Chan read write) val
+ = newEmptyMVar >>= \ new_hole ->
+ takeMVar write >>= \ old_hole ->
+ putMVar write new_hole >>
+ putMVar old_hole (ChItem val new_hole) >>
+ return ()
+
+\end{code}
+
+\begin{code}
+
+getChan :: Chan a -> IO a
+getChan (Chan read write)
+ = takeMVar read >>= \ rend ->
+ takeMVar rend >>= \ (ChItem val new_rend) ->
+ putMVar read new_rend >>
+ return val
+
+\end{code}
+
+\begin{code}
+
+dupChan :: Chan a -> IO (Chan a)
+dupChan (Chan read write)
+ = newEmptyMVar >>= \ new_read ->
+ readMVar write >>= \ hole ->
+ putMVar new_read hole >>
+ return (Chan new_read write)
+
+unGetChan :: Chan a -> a -> IO ()
+unGetChan (Chan read write) val
+ = newEmptyMVar >>= \ new_rend ->
+ takeMVar read >>= \ rend ->
+ putMVar new_rend (ChItem val rend) >>
+ putMVar read new_rend >>
+ return ()
+
+\end{code}
+
+\begin{code}
+
+getChanContents :: Chan a -> IO [a]
+getChanContents ch
+ = unsafeInterleavePrimIO (
+ getChan ch) `thenPrimIO` \ ~(Right x) ->
+ unsafeInterleavePrimIO (
+ getChanContents ch) `thenPrimIO` \ ~(Right xs) ->
+ return (x:xs)
+
+\end{code}
diff --git a/ghc/lib/prelude/ChannelVar.hi b/ghc/lib/prelude/ChannelVar.hi
new file mode 100644
index 0000000000..af3d1db3ff
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ChannelVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ChannelVar.lhs b/ghc/lib/prelude/ChannelVar.lhs
new file mode 100644
index 0000000000..d10721e96b
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar.lhs
@@ -0,0 +1,58 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[ChannelVar]{Channel variables}
+
+Channel variables, are one-element channels described in the Concurrent
+Haskell paper (available from @ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/drafts@)
+
+\begin{code}
+module ChannelVar
+ (
+ {- abstract -}
+ CVar,
+ newCVar, --:: IO (CVar a)
+ putCVar, --:: CVar a -> a -> IO ()
+ getCVar, --:: CVar a -> IO a
+ _MVar
+
+ ) where
+
+import PreludeGlaST
+import PreludePrimIO ( newEmptyMVar, newMVar, putMVar,
+ readMVar, takeMVar, _MVar
+ )
+\end{code}
+
+@MVars@ provide the basic mechanisms for synchronising access to a shared
+resource. @CVars@, or channel variables, provide an abstraction that guarantee
+that the producer is not allowed to run riot, but enforces the interleaved
+access to the channel variable,i.e., a producer is forced to wait up for
+a consumer to remove the previous value before it can deposit a new one in the @CVar@.
+
+\begin{code}
+
+data CVar a
+ = CVar (_MVar a) -- prod -> cons
+ (_MVar ()) -- cons -> prod
+
+newCVar :: IO (CVar a)
+putCVar :: CVar a -> a -> IO ()
+getCVar :: CVar a -> IO a
+
+newCVar
+ = newEmptyMVar >>= \ datum ->
+ newMVar () >>= \ ack ->
+ return (CVar datum ack)
+
+putCVar (CVar datum ack) val
+ = takeMVar ack >>
+ putMVar datum val >>
+ return ()
+
+getCVar (CVar datum ack)
+ = takeMVar datum >>= \ val ->
+ putMVar ack () >>
+ return val
+
+\end{code}
diff --git a/ghc/lib/prelude/ChannelVar_mc.hi b/ghc/lib/prelude/ChannelVar_mc.hi
new file mode 100644
index 0000000000..af3d1db3ff
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar_mc.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ChannelVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ChannelVar_mg.hi b/ghc/lib/prelude/ChannelVar_mg.hi
new file mode 100644
index 0000000000..af3d1db3ff
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar_mg.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ChannelVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ChannelVar_mp.hi b/ghc/lib/prelude/ChannelVar_mp.hi
new file mode 100644
index 0000000000..af3d1db3ff
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar_mp.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ChannelVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ChannelVar_p.hi b/ghc/lib/prelude/ChannelVar_p.hi
new file mode 100644
index 0000000000..af3d1db3ff
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar_p.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ChannelVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ChannelVar_t.hi b/ghc/lib/prelude/ChannelVar_t.hi
new file mode 100644
index 0000000000..af3d1db3ff
--- /dev/null
+++ b/ghc/lib/prelude/ChannelVar_t.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface ChannelVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel_mc.hi b/ghc/lib/prelude/Channel_mc.hi
new file mode 100644
index 0000000000..dee15c0193
--- /dev/null
+++ b/ghc/lib/prelude/Channel_mc.hi
@@ -0,0 +1,19 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Channel where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data Chan a
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AL)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)A)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AL)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LA)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel_mg.hi b/ghc/lib/prelude/Channel_mg.hi
new file mode 100644
index 0000000000..dee15c0193
--- /dev/null
+++ b/ghc/lib/prelude/Channel_mg.hi
@@ -0,0 +1,19 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Channel where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data Chan a
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AL)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)A)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AL)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LA)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel_mp.hi b/ghc/lib/prelude/Channel_mp.hi
new file mode 100644
index 0000000000..dee15c0193
--- /dev/null
+++ b/ghc/lib/prelude/Channel_mp.hi
@@ -0,0 +1,19 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Channel where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data Chan a
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AL)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)A)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AL)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LA)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel_p.hi b/ghc/lib/prelude/Channel_p.hi
new file mode 100644
index 0000000000..dee15c0193
--- /dev/null
+++ b/ghc/lib/prelude/Channel_p.hi
@@ -0,0 +1,19 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Channel where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data Chan a
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AL)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)A)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AL)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LA)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Channel_t.hi b/ghc/lib/prelude/Channel_t.hi
new file mode 100644
index 0000000000..dee15c0193
--- /dev/null
+++ b/ghc/lib/prelude/Channel_t.hi
@@ -0,0 +1,19 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Channel where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data Chan a
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AL)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)A)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AL)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LA)LU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls.hi b/ghc/lib/prelude/Cls.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls.hs b/ghc/lib/prelude/Cls.hs
new file mode 100644
index 0000000000..f8766fab44
--- /dev/null
+++ b/ghc/lib/prelude/Cls.hs
@@ -0,0 +1,200 @@
+module PreludeCore (
+ Eq(..), Ord(..), Num(..), Real(..), Integral(..),
+ Fractional(..), Floating(..), RealFrac(..), RealFloat(..),
+ Ix(..), Enum(..), Text(..), Binary(..),
+ _CCallable(..), _CReturnable(..),
+ Bin
+ ) where
+
+import UTypes
+
+import Core
+import IInt ( Int )
+import IInteger ( int2Integer, Integer )
+import List ( takeWhile, (++), foldr )
+import Prel ( (&&), (.), otherwise )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+{- We have to do something unpleasant about overloaded constants
+ herein. Those constants are automagically wrapped in applications
+ of the *BUILT-IN* from{Integer,Rational} Ids.
+
+ Those are *NOT* the same methods as those being compiled here!
+ (The builtin class information is "turned off" for compiling this
+ file, but that does not help w/ the from{Integer,Rational} Ids,
+ which are reached-out-and-grabbed from thin air.
+
+ We can subvert this process by wrapping the constants in explicit
+ from{Integer,Rational} calls (the ones defined herein). I have put
+ in a little CPPery, just to reduce typing.
+-}
+
+-- class declarations from PreludeCore
+
+class Eq a where
+ (==), (/=) :: a -> a -> Bool
+
+ x /= y = if x == y then False else True
+
+class (Eq a) => Ord a where
+ (<), (<=), (>=), (>):: a -> a -> Bool
+ max, min :: a -> a -> a
+ -- NON-STANDARD GLASGOW ADDITION:
+ _tagCmp :: a -> a -> _CMP_TAG
+
+ x < y = x <= y && x /= y
+ x >= y = y <= x
+ x > y = y < x
+ max x y | x >= y = x
+ | y >= x = y
+ |otherwise = error "max{PreludeCore}: no ordering relation\n"
+ min x y | x <= y = x
+ | y <= x = y
+ |otherwise = error "min{PreludeCore}: no ordering relation\n"
+ _tagCmp a b = if a == b then _EQ else if a < b then _LT else _GT
+
+class (Eq a, Text a) => Num a where
+ (+), (-), (*) :: a -> a -> a
+ negate :: a -> a
+ abs, signum :: a -> a
+ fromInteger :: Integer -> a
+ fromInt :: Int -> a -- partain: extra! (see note below)
+
+ x - y = x + negate y
+ fromInt i = fromInteger (int2Integer i)
+ -- Go via the standard class-op if the
+ -- non-standard one ain't provided
+
+{-
+Note: Both GHC and HBC provide an extra class operation in @Num@,
+namely @fromInt@. This makes small overloaded literal constants, such
+as ``42'', much more efficient. Instead of building the @Integer@ for
+``42'' and then converting that expensively to the desired type, we
+can then just make the @Int@ for ``42'' and convert that to the
+desired type.
+-}
+
+class (Num a, Enum a) => Real a where
+ toRational :: a -> Rational
+
+class (Real a, Ix a) => Integral a where
+ quot, rem, div, mod :: a -> a -> a
+ quotRem, divMod :: a -> a -> (a,a)
+ even, odd :: a -> Bool
+ toInteger :: a -> Integer
+ toInt :: a -> Int -- partain: also extra (as above)
+
+ n `quot` d = q where (q,r) = quotRem n d
+ n `rem` d = r where (q,r) = quotRem n d
+ n `div` d = q where (q,r) = divMod n d
+ n `mod` d = r where (q,r) = divMod n d
+ divMod n d = if signum r == - signum d then (q - i1__, r+d) else qr
+ where qr@(q,r) = quotRem n d
+ even n = n `rem` i2__ == i0__
+ odd n = n `rem` i2__ /= i0__
+
+class (Num a) => Fractional a where
+ (/) :: a -> a -> a
+ recip :: a -> a
+ fromRational :: Rational -> a
+
+ recip x = r1__ / x
+
+class (Fractional a) => Floating a where
+ pi :: a
+ exp, log, sqrt :: a -> a
+ (**), logBase :: a -> a -> a
+ sin, cos, tan :: a -> a
+ asin, acos, atan :: a -> a
+ sinh, cosh, tanh :: a -> a
+ asinh, acosh, atanh :: a -> a
+
+ x ** y = exp (log x * y)
+ logBase x y = log y / log x
+ sqrt x = x ** rhalf__
+ tan x = sin x / cos x
+ tanh x = sinh x / cosh x
+
+class (Real a, Fractional a) => RealFrac a where
+ properFraction :: (Integral b) => a -> (b,a)
+ truncate, round :: (Integral b) => a -> b
+ ceiling, floor :: (Integral b) => a -> b
+
+ -- just call the versions in Core.hs
+ truncate x = _truncate x
+ round x = _round x
+ ceiling x = _ceiling x
+ floor x = _floor x
+
+class (RealFrac a, Floating a) => RealFloat a where
+ floatRadix :: a -> Integer
+ floatDigits :: a -> Int
+ floatRange :: a -> (Int,Int)
+ decodeFloat :: a -> (Integer,Int)
+ encodeFloat :: Integer -> Int -> a
+ exponent :: a -> Int
+ significand :: a -> a
+ scaleFloat :: Int -> a -> a
+
+ exponent x = if m == i0__ then i0__ else n + floatDigits x
+ where (m,n) = decodeFloat x
+
+ significand x = encodeFloat m (- (floatDigits x))
+ where (m,_) = decodeFloat x
+
+ scaleFloat k x = encodeFloat m (n+k)
+ where (m,n) = decodeFloat x
+
+class (Ord a) => Ix a where
+ range :: (a,a) -> [a]
+ index :: (a,a) -> a -> Int
+ inRange :: (a,a) -> a -> Bool
+
+class (Ord a) => Enum a where
+ enumFrom :: a -> [a] -- [n..]
+ enumFromThen :: a -> a -> [a] -- [n,m..]
+ enumFromTo :: a -> a -> [a] -- [n..m]
+ enumFromThenTo :: a -> a -> a -> [a] -- [n,m..p]
+
+ enumFromTo n m = takeWhile (<= m) (enumFrom n)
+ enumFromThenTo n m p = takeWhile (if m >= n then (<= p) else (>= p))
+ (enumFromThen n m)
+
+class Text a where
+ readsPrec :: Int -> ReadS a
+ showsPrec :: Int -> a -> ShowS
+ readList :: ReadS [a]
+ showList :: [a] -> ShowS
+
+ readList = _readList
+ showList = _showList
+{-MOVED to Core.hs:
+ readList = readParen False (\r -> [pr | ("[",s) <- lex r,
+ pr <- readl s])
+ where readl s = [([],t) | ("]",t) <- lex s] ++
+ [(x:xs,u) | (x,t) <- reads s,
+ (xs,u) <- readl2 t]
+ readl2 s = [([],t) | ("]",t) <- lex s] ++
+ [(x:xs,v) | (",",t) <- lex s,
+ (x,u) <- reads t,
+ (xs,v) <- readl2 u]
+ showList [] = showString "[]"
+ showList (x:xs)
+ = showChar '[' . shows x . showl xs
+ where showl [] = showChar ']'
+ showl (x:xs) = showString ", " . shows x . showl xs
+-}
+
+-- Well, we've got to put it somewhere...
+
+instance Text (a -> b) where
+ readsPrec p s = error "readsPrec{PreludeCore}: Cannot read functions."
+ showsPrec p f = showString "<<function>>"
+
+class Binary a where
+ readBin :: Bin -> (a,Bin)
+ showBin :: a -> Bin -> Bin
+
+class _CCallable a
+class _CReturnable a
diff --git a/ghc/lib/prelude/Cls_mc.hi b/ghc/lib/prelude/Cls_mc.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_mc.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls_mg.hi b/ghc/lib/prelude/Cls_mg.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_mg.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls_mp.hi b/ghc/lib/prelude/Cls_mp.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_mp.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls_mr.hi b/ghc/lib/prelude/Cls_mr.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_mr.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls_mt.hi b/ghc/lib/prelude/Cls_mt.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_mt.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls_p.hi b/ghc/lib/prelude/Cls_p.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_p.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Cls_t.hi b/ghc/lib/prelude/Cls_t.hi
new file mode 100644
index 0000000000..0700995075
--- /dev/null
+++ b/ghc/lib/prelude/Cls_t.hi
@@ -0,0 +1,248 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple2, _CMP_TAG(..))
+import PreludeRatio(Ratio(..))
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(SA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Bin -> (u0, Bin)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bin -> Bin) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LSAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0 -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "U(LASAA)LLL" {_A_ 5 _U_ 11222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(SA)LL" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLL)AAAAAAAAAAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "U(ASAAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(LAAAASAAAAAAAAAAAAA)" {_A_ 2 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASLAAAAAAAAAAAAAAA)LL" {_A_ 5 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(ASAA)AALAAAAAAAAAAAAAAA)LL" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAALLAAAAAAAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASAAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(U(ASAA)AAAAAAAAAAAALLAAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAL)" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Ratio Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAAAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: (u0, u0) -> [u0]) (u3 :: (u0, u0) -> u0 -> Int) (u4 :: (u0, u0) -> u0 -> Bool) -> _!_ _TUP_4 [{{Ord u0}}, ((u0, u0) -> [u0]), ((u0, u0) -> u0 -> Int), ((u0, u0) -> u0 -> Bool)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 5 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) (u2 :: u0) (u3 :: u0) -> case _APP_ u1 [ u2, u3 ] of { _ALG_ _TUP_2 (u4 :: u0) (u5 :: u0) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> (u0, u0)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)ALLALALLA)AA)AAAAALAAAAA)" {_A_ 2 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(SA)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "U(U(U(U(AS)AAAAAAALA)AA)AALAAAAAAAA)" {_A_ 3 _U_ 1212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLL)AAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Ord u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> [u0]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: (u0, u0) -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) (u2 :: Int -> u0 -> [Char] -> [Char]) (u3 :: [Char] -> [([u0], [Char])]) (u4 :: [u0] -> [Char] -> [Char]) -> _!_ _TUP_4 [(Int -> [Char] -> [(u0, [Char])]), (Int -> u0 -> [Char] -> [Char]), ([Char] -> [([u0], [Char])]), ([u0] -> [Char] -> [Char])] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAALAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 6 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0 -> u0) (u3 :: u0) (u4 :: u0) -> let {(u5 :: u0) = _APP_ u2 [ u4 ]} in _APP_ u1 [ u3, u5 ] _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "U(AAAAAAAASA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 1 2 XC 5 _/\_ u0 -> \ (u1 :: Integer -> u0) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in _APP_ u1 [ u4 ] _N_} _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)AAAAAAA)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0 -> u0 -> Bool) -> _!_ _TUP_2 [(u0 -> u0 -> Bool), (u0 -> u0 -> Bool)] [u1, u2] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(ASAAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(LASAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AASAAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAASAAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(ASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> Bool) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAASAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(AASAAAAA)LL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0 -> _CMP_TAG) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "U(U(SA)LAAAAAA)LL" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLLLLL)AA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLL)A)" {_A_ 5 _U_ 22222 _N_ _N_ _F_ _IF_ARGS_ 1 5 XXXXX 6 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0 -> [u0]) (u3 :: u0 -> u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> u0 -> [u0]) -> _!_ _TUP_5 [{{Ord u0}}, (u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> [u0]), (u0 -> u0 -> u0 -> [u0])] [u1, u2, u3, u4, u5] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Ratio Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLLLLLL)AAAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{RealFrac u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLLLLLLLLLLLLLLLLL)AAAAAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASAAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Integer) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAASAAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAASAAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Int, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAASAAAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> (Integer, Int)) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAASAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Integer -> Int -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAASAA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> Int) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALASAAAA)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "U(AAALALSAAA)L" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAAAAAAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "U(AAAAALSAAA)LL" {_A_ 4 _U_ 1112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "U(U(LLL)AAAAAA)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: {{Enum u0}}) (u3 :: u0 -> Ratio Integer) -> _!_ _TUP_3 [{{Num u0}}, {{Enum u0}}, (u0 -> Ratio Integer)] [u1, u2, u3] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "U(AU(LLLL)AAAAA)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0 -> u0 -> u0) (u3 :: u0 -> u0) (u4 :: Ratio Integer -> u0) -> _!_ _TUP_4 [{{Num u0}}, (u0 -> u0 -> u0), (u0 -> u0), (Ratio Integer -> u0)] [u1, u2, u3, u4] _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAASAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAASAA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAASA)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "U(AAAAAAS)L" {_A_ 2 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u3 :: {{Integral u1}}) -> _APP_ _TYAPP_ u2 { u1 } [ u3 ] _N_} _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> [Char] -> [(u0, [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: Int -> u0 -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "U(AASA)" {_A_ 1 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [Char] -> [([u0], [Char])]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: [u0] -> [Char] -> [Char]) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Bin
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Concurrent.hi b/ghc/lib/prelude/Concurrent.hi
new file mode 100644
index 0000000000..29976ccd5b
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent.hi
@@ -0,0 +1,93 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Concurrent where
+import Channel(Chan(..), dupChan, getChan, getChanContents, newChan, putChan, unGetChan)
+import ChannelVar(CVar(..), getCVar, newCVar, putCVar)
+import Merge(mergeIO, nmergeIO)
+import Parallel(par, seq)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(IVar(..), MVar(..), _IVar, _MVar, newEmptyMVar, newIVar, newMVar, putMVar, readIVar, readMVar, swapMVar, takeMVar, threadDelay, threadWait, writeIVar)
+import SampleVar(SampleVar(..), emptySampleVar, newSampleVar, readSample, writeSample)
+import Semaphore(QSem(..), QSemN(..), newQSem, newQSemN, signalQSem, signalQSemN, waitQSem, waitQSemN)
+infixr 0 `par`
+infixr 1 `seq`
+data Chan a
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+type SampleVar a = _MVar (Int, _MVar a)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+forkIO :: (_State _RealWorld -> (Either IOError13 (), _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Concurrent.lhs b/ghc/lib/prelude/Concurrent.lhs
new file mode 100644
index 0000000000..08c5d35cea
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent.lhs
@@ -0,0 +1,59 @@
+%
+% (c) The AQUA Project, Glasgow University, 1995
+%
+\section[Concurrent]{Concurrent Haskell constructs}
+
+A common interface to a collection of useful concurrency abstractions.
+Currently, the collection only contains the abstractions found in the
+{\em Concurrent Haskell} paper (presented at the Haskell Workshop
+1995, draft available via \tr{ftp} from
+\tr{ftp.dcs.gla.ac.uk/pub/glasgow-fp/drafts}.) plus a couple of
+others. See the paper and the individual files containing the module
+definitions for explanation on what they do.
+
+\begin{code}
+module Concurrent (
+ forkIO,
+ par, seq, -- reexported from Parallel
+
+ threadWait, threadDelay,
+
+ ChannelVar..,
+ Channel..,
+ Semaphore..,
+ Merge..,
+ SampleVar..,
+
+ -- IVars and MVars come from here, too
+ IVar(..), MVar(..), -- for convenience...
+ _IVar, _MVar, -- abstract
+ newEmptyMVar, takeMVar, putMVar, newMVar, readMVar, swapMVar,
+ newIVar, readIVar, writeIVar
+
+ ) where
+
+import Parallel
+import ChannelVar
+import Channel
+import Semaphore
+import Merge
+import SampleVar
+
+import PreludeGlaST ( forkST )
+import PreludePrimIO ( newEmptyMVar, newMVar, putMVar,
+ readMVar, swapMVar, takeMVar, _MVar,
+ newIVar, readIVar, writeIVar, _IVar,
+ IVar(..), MVar(..),
+ threadWait, threadDelay
+ )
+
+forkIO :: IO () -> IO ()
+
+forkIO action s
+ = let
+ (_, new_s) = action s
+ in
+ new_s `_fork_` (Right (), s)
+ where
+ _fork_ x y = case (fork# x) of { 0# -> parError#; _ -> y }
+\end{code}
diff --git a/ghc/lib/prelude/Concurrent_mc.hi b/ghc/lib/prelude/Concurrent_mc.hi
new file mode 100644
index 0000000000..f59c81cc84
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent_mc.hi
@@ -0,0 +1,93 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Concurrent where
+import Channel(Chan(..), dupChan, getChan, getChanContents, newChan, putChan, unGetChan)
+import ChannelVar(CVar(..), getCVar, newCVar, putCVar)
+import Merge(mergeIO, nmergeIO)
+import Parallel(par, seq)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(IVar(..), MVar(..), _IVar, _MVar, newEmptyMVar, newIVar, newMVar, putMVar, readIVar, readMVar, swapMVar, takeMVar, threadDelay, threadWait, writeIVar)
+import SampleVar(SampleVar(..), emptySampleVar, newSampleVar, readSample, writeSample)
+import Semaphore(QSem(..), QSemN(..), newQSem, newQSemN, signalQSem, signalQSemN, waitQSem, waitQSemN)
+infixr 0 `par`
+infixr 1 `seq`
+data Chan a
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+type SampleVar a = _MVar (Int, _MVar a)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+forkIO :: (_State _RealWorld -> (Either IOError13 (), _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ par# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ seq# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Concurrent_mg.hi b/ghc/lib/prelude/Concurrent_mg.hi
new file mode 100644
index 0000000000..29976ccd5b
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent_mg.hi
@@ -0,0 +1,93 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Concurrent where
+import Channel(Chan(..), dupChan, getChan, getChanContents, newChan, putChan, unGetChan)
+import ChannelVar(CVar(..), getCVar, newCVar, putCVar)
+import Merge(mergeIO, nmergeIO)
+import Parallel(par, seq)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(IVar(..), MVar(..), _IVar, _MVar, newEmptyMVar, newIVar, newMVar, putMVar, readIVar, readMVar, swapMVar, takeMVar, threadDelay, threadWait, writeIVar)
+import SampleVar(SampleVar(..), emptySampleVar, newSampleVar, readSample, writeSample)
+import Semaphore(QSem(..), QSemN(..), newQSem, newQSemN, signalQSem, signalQSemN, waitQSem, waitQSemN)
+infixr 0 `par`
+infixr 1 `seq`
+data Chan a
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+type SampleVar a = _MVar (Int, _MVar a)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+forkIO :: (_State _RealWorld -> (Either IOError13 (), _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Concurrent_mp.hi b/ghc/lib/prelude/Concurrent_mp.hi
new file mode 100644
index 0000000000..9a815f8ef6
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent_mp.hi
@@ -0,0 +1,93 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Concurrent where
+import Channel(Chan(..), dupChan, getChan, getChanContents, newChan, putChan, unGetChan)
+import ChannelVar(CVar(..), getCVar, newCVar, putCVar)
+import Merge(mergeIO, nmergeIO)
+import Parallel(par, seq)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(IVar(..), MVar(..), _IVar, _MVar, newEmptyMVar, newIVar, newMVar, putMVar, readIVar, readMVar, swapMVar, takeMVar, threadDelay, threadWait, writeIVar)
+import SampleVar(SampleVar(..), emptySampleVar, newSampleVar, readSample, writeSample)
+import Semaphore(QSem(..), QSemN(..), newQSem, newQSemN, signalQSem, signalQSemN, waitQSem, waitQSemN)
+infixr 0 `par`
+infixr 1 `seq`
+data Chan a
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+type SampleVar a = _MVar (Int, _MVar a)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+forkIO :: (_State _RealWorld -> (Either IOError13 (), _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ par# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ seq# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Concurrent_p.hi b/ghc/lib/prelude/Concurrent_p.hi
new file mode 100644
index 0000000000..29976ccd5b
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent_p.hi
@@ -0,0 +1,93 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Concurrent where
+import Channel(Chan(..), dupChan, getChan, getChanContents, newChan, putChan, unGetChan)
+import ChannelVar(CVar(..), getCVar, newCVar, putCVar)
+import Merge(mergeIO, nmergeIO)
+import Parallel(par, seq)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(IVar(..), MVar(..), _IVar, _MVar, newEmptyMVar, newIVar, newMVar, putMVar, readIVar, readMVar, swapMVar, takeMVar, threadDelay, threadWait, writeIVar)
+import SampleVar(SampleVar(..), emptySampleVar, newSampleVar, readSample, writeSample)
+import Semaphore(QSem(..), QSemN(..), newQSem, newQSemN, signalQSem, signalQSemN, waitQSem, waitQSemN)
+infixr 0 `par`
+infixr 1 `seq`
+data Chan a
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+type SampleVar a = _MVar (Int, _MVar a)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+forkIO :: (_State _RealWorld -> (Either IOError13 (), _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Concurrent_t.hi b/ghc/lib/prelude/Concurrent_t.hi
new file mode 100644
index 0000000000..29976ccd5b
--- /dev/null
+++ b/ghc/lib/prelude/Concurrent_t.hi
@@ -0,0 +1,93 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Concurrent where
+import Channel(Chan(..), dupChan, getChan, getChanContents, newChan, putChan, unGetChan)
+import ChannelVar(CVar(..), getCVar, newCVar, putCVar)
+import Merge(mergeIO, nmergeIO)
+import Parallel(par, seq)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(IVar(..), MVar(..), _IVar, _MVar, newEmptyMVar, newIVar, newMVar, putMVar, readIVar, readMVar, swapMVar, takeMVar, threadDelay, threadWait, writeIVar)
+import SampleVar(SampleVar(..), emptySampleVar, newSampleVar, readSample, writeSample)
+import Semaphore(QSem(..), QSemN(..), newQSem, newQSemN, signalQSem, signalQSemN, waitQSem, waitQSemN)
+infixr 0 `par`
+infixr 1 `seq`
+data Chan a
+data CVar a {-# GHC_PRAGMA CVar (_MVar a) (_MVar ()) #-}
+type IVar a = _IVar a
+type MVar a = _MVar a
+data _IVar a {-# GHC_PRAGMA _IVar (SynchVar# _RealWorld a) #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+type SampleVar a = _MVar (Int, _MVar a)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+dupChan :: Chan a -> _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+forkIO :: (_State _RealWorld -> (Either IOError13 (), _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+getChan :: Chan a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+getChanContents :: Chan a -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+newChan :: _State _RealWorld -> (Either IOError13 (Chan a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+unGetChan :: Chan a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "SLS" _N_ _N_ #-}
+getCVar :: CVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newCVar :: _State _RealWorld -> (Either IOError13 (CVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putCVar :: CVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(LU(P))LU(P)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+newEmptyMVar :: _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newIVar :: _State _RealWorld -> (Either IOError13 (_IVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newMVar :: a -> _State _RealWorld -> (Either IOError13 (_MVar a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+putMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readIVar :: _IVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+swapMVar :: _MVar a -> a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+takeMVar :: _MVar a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadDelay :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+threadWait :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeIVar :: _IVar a -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Core.hi b/ghc/lib/prelude/Core.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core.hs b/ghc/lib/prelude/Core.hs
new file mode 100644
index 0000000000..921c08d544
--- /dev/null
+++ b/ghc/lib/prelude/Core.hs
@@ -0,0 +1,326 @@
+module PreludeCore (
+ _integer_0,
+ _integer_1,
+ _integer_m1,
+ fromRationalX,
+ i0__,
+ i1__,
+ i2__,
+ iminus1__,
+ int2Integer,
+ _showRational,
+ r0__,
+ r1__,
+ rhalf__,
+ _readList, _showList,
+ _properFraction, _truncate, _round, _ceiling, _floor
+ ) where
+
+import Cls
+import IChar -- instances
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IRatio
+import List ( reverse, dropWhile, take, drop, repeat, (++), head, tail )
+import Prel ( (&&), (^^), (^), not, otherwise, asTypeOf, const, (.) )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyComplex -- for pragmas
+
+-----------------------------------------------------------------
+-- some *** NON-STANDARD *** constants (to help compiling Cls.hs)
+
+i0__, iminus1__, i1__, i2__ :: Num a => a
+
+{-# SPECIALIZE i0__ :: Int, Integer #-}
+
+i0__ = fromInteger 0
+iminus1__ = fromInteger (-1)
+i1__ = fromInteger 1
+i2__ = fromInteger 2
+
+r0__, rhalf__, r1__ :: Fractional a => a
+
+r0__ = fromRational 0
+rhalf__ = fromRational 0.5
+r1__ = fromRational 1
+
+-- other bits of PreludeCore that aren't classes, instances, etc.
+
+{- OLD:
+absReal :: (Real a) => a -> a
+absReal x | x >= 0 = x
+ | otherwise = - x
+
+signumReal :: (Real a) => a -> a
+signumReal x | x == 0 = 0
+ | x > 0 = 1
+ | otherwise = -1
+-}
+
+{- *RAW PRELUDE*: NOT REALLY USED:
+numericEnumFrom :: (Real a) => a -> [a]
+numericEnumFromThen :: (Real a) => a -> a -> [a]
+numericEnumFrom = iterate (+1)
+numericEnumFromThen n m = iterate (+(m-n)) n
+-}
+
+{- OLD:
+realFloatToRational :: (RealFloat a) => a -> Rational
+realFloatToRational x = (m%1)*(b%1)^^n
+ where (m,n) = decodeFloat x
+ b = floatRadix x
+-}
+
+{-
+[In response to a request by simonpj, Joe Fasel writes:]
+
+A quite reasonable request! This code was added to the Prelude just
+before the 1.2 release, when Lennart, working with an early version
+of hbi, noticed that (read . show) was not the identity for
+floating-point numbers. (There was a one-bit error about half the time.)
+The original version of the conversion function was in fact simply
+a floating-point divide, as you suggest above. The new version is,
+I grant you, somewhat denser.
+
+How's this?
+
+--Joe
+-}
+
+--{-# GENERATE_SPECS rationalToRealFloat a{Double#,Double} #-}
+rationalToRealFloat :: (RealFloat a) => Rational -> a
+
+rationalToRealFloat x = x'
+ where x' = f e
+
+-- If the exponent of the nearest floating-point number to x
+-- is e, then the significand is the integer nearest xb^(-e),
+-- where b is the floating-point radix. We start with a good
+-- guess for e, and if it is correct, the exponent of the
+-- floating-point number we construct will again be e. If
+-- not, one more iteration is needed.
+
+ f e = if e' == e then y else f e'
+ where y = encodeFloat (round (x * (1%b)^^e)) e
+ (_,e') = decodeFloat y
+ b = floatRadix x'
+
+-- We obtain a trial exponent by doing a floating-point
+-- division of x's numerator by its denominator. The
+-- result of this division may not itself be the ultimate
+-- result, because of an accumulation of three rounding
+-- errors.
+
+ (s,e) = decodeFloat (fromInteger (numerator x) `asTypeOf` x'
+ / fromInteger (denominator x))
+
+-------------------------------------------------------------------------
+-- These RealFrac things are here so we can
+-- SPECIALIZE the tapookies out of them.
+-- Also: get rid of gratuitous lazy pattern matching.
+
+_properFraction :: (RealFloat a, Integral b) => a -> (b,a)
+_truncate, _round :: (RealFrac a, Integral b) => a -> b
+_ceiling, _floor :: (RealFrac a, Integral b) => a -> b
+
+{-# SPECIALIZE _properFraction
+ :: Double -> (Int, Double)
+ #-}
+{-# SPECIALIZE _truncate
+ :: Double -> Int
+ #-}
+{-# SPECIALIZE _round
+ :: Double -> Int,
+ Rational -> Integer
+ #-}
+{-# SPECIALIZE _ceiling
+ :: Double -> Int
+ #-}
+{-# SPECIALIZE _floor
+ :: Double -> Int
+ #-}
+
+_properFraction x
+ = case (decodeFloat x) of { (m,n) ->
+ let b = floatRadix x in
+ if n >= 0 then
+ (fromInteger m * fromInteger b ^ n, 0)
+ else
+ case (quotRem m (b^(-n))) of { (w,r) ->
+ (fromInteger w, encodeFloat r n)
+ }
+ }
+
+_truncate x = case (properFraction x) of { (m, _) -> m }
+
+_round x
+ -- this defn differs from that in the report; uses _tagCmp
+ --
+ = case (properFraction x) of { (n,r) ->
+ let
+ m = if r < r0__ then n - i1__ else n + i1__
+ sign = signum (abs r - rhalf__) --UNUSED!
+
+ half_down = abs r - rhalf__
+ in
+ case (_tagCmp half_down r0__) of
+ _LT -> n
+ _EQ -> if even n then n else m
+ _GT -> m
+{- OLD:
+ if sign == iminus1__ then n
+ else if sign == i0__ then (if even n then n else m)
+ else if sign == i1__ then m
+ else error "_round{PreludeCore}: no match in sign\n"
+-}
+ }
+
+_ceiling x
+ = case (properFraction x) of { (n,r) ->
+ if r > r0__ then n + i1__ else n }
+
+_floor x
+ = case (properFraction x) of { (n,r) ->
+ if r < r0__ then n - i1__ else n }
+
+-------------------------------------------------------------------------
+-- from/by Lennart, 94/09/26
+
+--module Rational(prRational, fromRationalX, tinyDouble, tinyFloat, hugeDouble, hugeFloat, tiny, huge, integerLogBase) where
+
+-- Convert a Rational to a string that looks like a floating point number,
+-- but without converting to any floating type (because of the possible overflow).
+_showRational :: Int -> Rational -> String
+_showRational n r =
+ if r == 0 then
+ "0.0"
+ else
+ let (r', e) = normalize r
+ in prR n r' e
+
+startExpExp = 4 :: Int
+
+-- make sure 1 <= r < 10
+normalize :: Rational -> (Rational, Int)
+normalize r = if r < 1 then case norm startExpExp (1 / r) 0 of (r', e) -> (10 / r', -e-1) else norm startExpExp r 0
+ where norm :: Int -> Rational -> Int -> (Rational, Int)
+ -- Invariant: r*10^e == original r
+ norm 0 r e = (r, e)
+ norm ee r e =
+ let n = 10^ee
+ tn = 10^n
+ in if r >= tn then norm ee (r/tn) (e+n) else norm (ee-1) r e
+
+drop0 "" = ""
+drop0 (c:cs) = c : reverse (dropWhile (=='0') (reverse cs))
+
+prR :: Int -> Rational -> Int -> String
+prR n r e | r < 1 = prR n (r*10) (e-1) -- final adjustment
+prR n r e | r >= 10 = prR n (r/10) (e+1)
+prR n r e0 =
+ let s = show ((_round (r * 10^n))::Integer)
+ e = e0+1
+ in if e > 0 && e < 8 then
+ take e s ++ "." ++ drop0 (drop e s)
+ else if e <= 0 && e > -3 then
+ "0." ++ take (-e) (repeat '0') ++ drop0 s
+ else
+ head s : "."++ drop0 (tail s) ++ "e" ++ show e0
+
+------------
+
+-- The Prelude version of fromRational is broken; if the denominator or nominator is
+-- out of range it fails. So we use this (very expensive!) version instead.
+
+fromRationalX :: (RealFloat a) => Rational -> a
+
+fromRationalX r =
+ rationalToRealFloat r
+{- Hmmm...
+ let
+ h = ceiling (huge `asTypeOf` x)
+ b = toInteger (floatRadix x)
+ x = fromRat 0 r
+
+ fromRat e0 r' =
+{--} _trace (shows e0 ('/' : shows r' ('/' : shows h "\n"))) (
+ let d = denominator r'
+ n = numerator r'
+ in if d > h then
+ let e = integerLogBase b (d `div` h) + 1
+ in fromRat (e0-e) (n % (d `div` (b^e)))
+ else if abs n > h then
+ let e = integerLogBase b (abs n `div` h) + 1
+ in fromRat (e0+e) ((n `div` (b^e)) % d)
+ else
+ scaleFloat e0 (rationalToRealFloat r')
+ -- now that we know things are in-bounds,
+ -- we use the "old" Prelude code.
+{--} )
+ in x
+-}
+
+-- Compute the discrete log of i in base b.
+-- Simplest way would be just divide i by b until it's smaller then b, but that would
+-- be very slow! We are just slightly more clever.
+integerLogBase :: Integer -> Integer -> Int
+integerLogBase b i =
+ if i < b then
+ 0
+ else
+ -- Try squaring the base first to cut down the number of divisions.
+ let l = 2 * integerLogBase (b*b) i
+ doDiv :: Integer -> Int -> Int
+ doDiv i l = if i < b then l else doDiv (i `div` b) (l+1)
+ in doDiv (i `div` (b^l)) l
+
+
+------------
+
+-- Compute smallest and largest floating point values.
+tiny :: (RealFloat a) => a
+tiny =
+ let (l, _) = floatRange x
+ x = encodeFloat 1 (l-1)
+ in x
+
+huge :: (RealFloat a) => a
+huge =
+ let (_, u) = floatRange x
+ d = floatDigits x
+ x = encodeFloat (floatRadix x ^ d - 1) (u - d)
+ in x
+
+tinyDouble = tiny :: Double
+tinyFloat = tiny :: Float
+hugeDouble = huge :: Double
+hugeFloat = huge :: Float
+
+-----------------------------------------------------------------
+-- It is problematic having this in Cls.hs
+-- (You really don't want to know why -- WDP 94/12)
+--
+_readList :: Text a => ReadS [a]
+
+_readList = readParen False (\r -> [pr | ("[",s) <- lex r,
+ pr <- readl s])
+ where readl s = [([],t) | ("]",t) <- lex s] ++
+ [(x:xs,u) | (x,t) <- reads s,
+ (xs,u) <- readl2 t]
+ readl2 s = [([],t) | ("]",t) <- lex s] ++
+ [(x:xs,v) | (",",t) <- lex s,
+ (x,u) <- reads t,
+ (xs,v) <- readl2 u]
+
+_showList :: Text a => [a] -> ShowS
+
+_showList [] = showString "[]"
+_showList (x:xs)
+ = showChar '[' . shows x . showl xs
+
+ where showl [] = showChar ']'
+ showl (x:xs) = showString ", " . shows x . showl xs
diff --git a/ghc/lib/prelude/Core_mc.hi b/ghc/lib/prelude/Core_mc.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_mc.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core_mg.hi b/ghc/lib/prelude/Core_mg.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_mg.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core_mp.hi b/ghc/lib/prelude/Core_mp.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_mp.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core_mr.hi b/ghc/lib/prelude/Core_mr.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_mr.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core_mt.hi b/ghc/lib/prelude/Core_mt.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_mt.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core_p.hi b/ghc/lib/prelude/Core_p.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_p.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Core_t.hi b/ghc/lib/prelude/Core_t.hi
new file mode 100644
index 0000000000..1632945de5
--- /dev/null
+++ b/ghc/lib/prelude/Core_t.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeRatio(Ratio(..))
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_properFraction :: (RealFloat b, Integral a) => b -> (a, b)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(ALLAASLAAA)L" {_A_ 5 _U_ 111112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+fromRationalX :: RealFloat a => Ratio Integer -> a
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+i0__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [0#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ } #-}
+i1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [1#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Int ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ } #-}
+i2__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(u2 :: Integer) = _#_ int2Integer# [] [2#]} in case u1 of { _ALG_ _TUP_10 (u3 :: {{Eq u0}}) (u4 :: {{Text u0}}) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: Integer -> u0) (uc :: Int -> u0) -> _APP_ ub [ u2 ]; _NO_DEFLT_ } _N_ #-}
+iminus1__ :: Num a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAAAAASA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+r0__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+r1__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+rhalf__ :: Fractional a => a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAS)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ }, [ (Ratio Integer) ] 1 { _A_ 0 _N_ _N_ _N_ _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/FoldrBuild.hs b/ghc/lib/prelude/FoldrBuild.hs
new file mode 100644
index 0000000000..6201af4857
--- /dev/null
+++ b/ghc/lib/prelude/FoldrBuild.hs
@@ -0,0 +1,20 @@
+module PreludeFoldrBuild where
+
+import Builtin (error)
+
+-----------------------------------------------------------------
+-- This needs to be in a sperate module, other than in List.hs
+-- NOTE: no foldr/build's are done on the module that foldr is defined in.
+
+{-# MAGIC_UNFOLDING foldr foldr #-}
+foldr :: (a -> b -> b) -> b -> [a] -> b
+foldr f z [] = z
+foldr f z (x:xs) = f x (foldr f z xs)
+
+{-# MAGIC_UNFOLDING foldl foldl #-}
+--{-# GENERATE_SPECS foldl a b #-}
+foldl :: (a -> b -> a) -> a -> [b] -> a
+foldl f z [] = z
+foldl f z (x:xs) = foldl f (f z x) xs
+
+
diff --git a/ghc/lib/prelude/IArray.hi b/ghc/lib/prelude/IArray.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray.hs b/ghc/lib/prelude/IArray.hs
new file mode 100644
index 0000000000..eec3b04f2d
--- /dev/null
+++ b/ghc/lib/prelude/IArray.hs
@@ -0,0 +1,285 @@
+-- *** all of PreludeArray except the actual data decls
+
+module PreludeArray (
+ Array, Assoc,
+
+ (!),
+ (//),
+ accum,
+ accumArray,
+ amap,
+ array,
+ assocs,
+ bounds,
+ elems,
+ indices,
+ ixmap,
+ listArray
+ ) where
+
+import Cls
+import Core
+import IChar
+import IInt -- instances
+import IList
+import ITup2
+import List ( (++), zipWith, foldr )
+import Prel ( (&&), (.) )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyArray ( Array(..), Assoc(..) )
+import PreludeGlaST
+
+-- Hey! This isn't wimp Haskell-report code! This is
+-- the Business End of Arrays...
+
+--infixl 9 !
+--infixl 9 //
+--infix 1 :=
+
+-----------------------------------------------------------
+instance (Eq a, Eq b) => Eq (Assoc a b) where
+ (a1 := b1) == (a2 := b2) = a1 == a2 && b1 == b2
+ a /= b = if a == b then False else True
+
+instance (Ord a, Ord b) => Ord (Assoc a b) where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+ _tagCmp (a1 := b1) (a2 := b2)
+ = case (_tagCmp a1 a2) of { _LT -> _LT; _GT -> _GT; _EQ -> _tagCmp b1 b2 }
+
+instance (Ix a, Ix b) => Ix (Assoc a b) where
+ range (l1 := l2, u1 := u2)
+ = [ (i1 := i2) | i1 <- range (l1, u1), i2 <- range (l2, u2) ]
+
+ index (l1 := l2, u1 := u2) (i1 := i2)
+ = index (l1, u1) i1 * (index (l2, u2) u2 + 1){-rangeSize (l2, u2)-} + index (l2, u2) i2
+
+ inRange (l1 := l2, u1 := u2) (i1 := i2)
+ = inRange (l1, u1) i1 && inRange (l2, u2) i2
+
+instance (Text a, Text b) => Text (Assoc a b) where
+ -- magic fixity wired in: infix 1 :=
+ readsPrec p
+ = readParen ( p > 1 )
+ (\ r -> [ (x := y, s2) | (x, s0) <- readsPrec 2 r,
+ (":=", s1) <- lex s0,
+ (y, s2) <- readsPrec 2 s1 ])
+ showsPrec d (a := b)
+ = showParen (d > 1)
+ (showsPrec 2 a . showString " := " . showsPrec 2 b)
+
+-- ToDo: *** Binary
+
+-----------------------------------------------------------
+
+type IPr = (Int, Int)
+
+{-# GENERATE_SPECS array a{~,Int,IPr} b{} #-}
+array :: (Ix a) => (a,a) -> [Assoc a b] -> Array a b
+
+{-# GENERATE_SPECS (!) a{~,Int,IPr} b{} #-}
+(!) :: (Ix a) => Array a b -> a -> b
+
+bounds :: Array a b -> (a,a)
+
+{-# GENERATE_SPECS listArray a{~,Int,IPr} b{} #-}
+listArray :: (Ix a) => (a,a) -> [b] -> Array a b
+
+{-# GENERATE_SPECS indices a{~,Int,IPr} b{} #-}
+indices :: (Ix a) => Array a b -> [a]
+
+{-# GENERATE_SPECS elems a{~,Int,IPr} b{} #-}
+elems :: (Ix a) => Array a b -> [b]
+
+{-# GENERATE_SPECS assocs a{~,Int,IPr} b{} #-}
+assocs :: (Ix a) => Array a b -> [Assoc a b]
+
+{-# GENERATE_SPECS accumArray a{~,Int,IPr} b{} c{} #-}
+accumArray :: (Ix a) => (b -> c -> b) -> b -> (a,a) -> [Assoc a c] -> Array a b
+
+{-# GENERATE_SPECS (//) a{~,Int,IPr} b{} #-}
+(//) :: (Ix a) => Array a b -> [Assoc a b] -> Array a b
+
+{-# GENERATE_SPECS accum a{~,Int,IPr} b{} c{} #-}
+accum :: (Ix a) => (b -> c -> b) -> Array a b -> [Assoc a c] -> Array a b
+
+{-# GENERATE_SPECS amap a{~,Int,IPr} b{} c{} #-}
+amap :: (Ix a) => (b -> c) -> Array a b -> Array a c
+
+ixmap :: (Ix a, Ix b) => (a,a) -> (a -> b) -> Array b c -> Array a c
+
+
+{- "array", "!" and "bounds" are basic;
+ the rest can be defined in terms of them
+-}
+
+bounds (_Array b _) = b
+
+array ixs@(ix_start, ix_end) ivs
+ = _runST (
+ newArray ixs arrEleBottom `thenStrictlyST` \ arr# ->
+ fill_it_in arr# ivs `seqStrictlyST`
+ freezeArray arr#
+ )
+ where
+ arrEleBottom = error "(!){PreludeArray}: undefined array element"
+
+(_Array bounds arr#) ! i
+ = let n# = case (index bounds i) of { I# x -> x } -- index fails if out of range
+ in
+ case (indexArray# arr# n#) of
+ _Lift v -> v
+
+fill_it_in arr lst s
+ = foldr fill_one_in (returnStrictlyST ()) lst s
+ where -- **** STRICT **** (but that's OK...)
+ fill_one_in (i := v) rst s
+ = (writeArray arr i v `seqStrictlyST` rst) s
+
+{- the rest ------------------------------------------------- -}
+
+listArray b vs = array b (zipWith (:=) (range b) vs)
+
+indices a = range (bounds a)
+
+elems a = [a!i | i <- indices a]
+
+assocs a = [i := a!i | i <- indices a]
+
+#ifdef USE_REPORT_PRELUDE
+a // us = array (bounds a)
+ ([i := a!i | i <- indices a \\ [i | i:=_ <- us]]
+ ++ us)
+
+accum f = foldl (\a (i := v) -> a // [i := f (a!i) v])
+
+accumArray f z b = accum f (array b [i := z | i <- range b])
+
+#else /* ! USE_REPORT_PRELUDE */
+
+old_array // ivs
+ = _runST (
+ -- copy the old array:
+ newArray (bounds old_array) bottom `thenStrictlyST` \ arr# ->
+ fill_it_in arr# (assocs old_array) `seqStrictlyST`
+ -- now write the new elements into the new array:
+ fill_it_in arr# ivs `seqStrictlyST`
+ freezeArray arr#
+ )
+ where
+ bottom = error "(//){PreludeArray}: error in copying old array\n"
+
+-- zap_with_f: reads an elem out first, then uses "f" on that and the new value
+
+zap_with_f f arr lst s
+ = foldr zap_one (returnStrictlyST ()) lst s
+ where
+ zap_one (i := new_v) rst s
+ = (readArray arr i `thenStrictlyST` \ old_v ->
+ writeArray arr i (f old_v new_v) `seqStrictlyST`
+ rst) s
+
+accum f arr ivs
+ = _runST (
+ -- copy the old array:
+ newArray (bounds arr) bottom `thenST` \ arr# ->
+ fill_it_in arr# (assocs arr) `seqST`
+
+ -- now zap the elements in question with "f":
+ zap_with_f f arr# ivs `seqST`
+ freezeArray arr#
+ )
+ where
+ bottom = error "accum{PreludeArray}: error in copying old array\n"
+
+accumArray f zero ixs ivs
+ = _runST (
+ newArray ixs zero `thenST` \ arr# ->
+ zap_with_f f arr# ivs `seqST`
+ freezeArray arr#
+ )
+#endif /* ! USE_REPORT_PRELUDE */
+
+amap f a = array b [i := f (a!i) | i <- range b]
+ where b = bounds a
+
+ixmap b f a = array b [i := a ! f i | i <- range b]
+
+instance (Ix a, Eq b) => Eq (Array a b) where
+ a == a' = assocs a == assocs a'
+ a /= a' = assocs a /= assocs a'
+
+instance (Ix a, Ord b) => Ord (Array a b) where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp a b = _tagCmp (assocs a) (assocs b)
+
+instance (Ix a, Text a, Text b) => Text (Array a b) where
+ showsPrec p a = showParen (p > 9) (
+ showString "array " .
+ shows (bounds a) . showChar ' ' .
+ shows (assocs a) )
+
+ readsPrec p = readParen (p > 9)
+ (\r -> [(array b as, u) | ("array",s) <- lex r,
+ (b,t) <- reads s,
+ (as,u) <- reads t ]
+ ++
+ [(listArray b xs, u) | ("listArray",s) <- lex r,
+ (b,t) <- reads s,
+ (xs,u) <- reads t ])
+
+{- **** OMITTED **** (ToDo)
+instance (Ix a, Binary a, Binary b) => Binary (Array a b) where
+ showBin a = showBin (bounds a) . showBin (elems a)
+
+ readBin bin = (listArray b vs, bin'')
+ where (b,bin') = readBin bin
+ (vs,bin'') = readBin bin'
+-}
+{- ToDo ...
+
+#if defined(__UNBOXED_INSTANCES__)
+
+-- {-# GENERATE_SPECS array a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS (!) a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS bounds a{~,Int#} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS listArray a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS indices a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS elems a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS assocs a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS accumArray a{~,Int#,Int,IPr} b{Int#,Double#} c{Int#,Double#} #-}
+-- {-# GENERATE_SPECS (//) a{~,Int#,Int,IPr} b{Int#,Double#} #-}
+-- {-# GENERATE_SPECS accum a{~,Int#,Int,IPr} b{Int#,Double#} c{Int#,Double#} #-}
+-- {-# GENERATE_SPECS amap a{~,Int#,Int,IPr} b{Int#,Double#} c{Int#,Double#} #-}
+-- {-# GENERATE_SPECS ixmap a{~,Int#,Int} b{~,Int#,Int} c{Int#,Double#} #-}
+
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Eq (Array a b) #-}
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Ord (Array a b) #-}
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Text (Array a b) #-}
+
+
+-- {-# GENERATE_SPECS instance a{Int} b{} :: Eq (Array a b) #-}
+This raises the question of ambiguous specialised instances:
+Which instance would be chosen for Array Int Int# ?
+Array Int b or Array a Int# ?
+
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Eq (Assoc a b) #-}
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Ord (Assoc a b) #-}
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Ix (Assoc a b) #-}
+-- {-# GENERATE_SPECS instance a{Int#} b{Int#,Double#} :: Text (Assoc a b) #-}
+
+#endif
+
+-}
diff --git a/ghc/lib/prelude/IArray_mc.hi b/ghc/lib/prelude/IArray_mc.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_mc.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray_mg.hi b/ghc/lib/prelude/IArray_mg.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_mg.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray_mp.hi b/ghc/lib/prelude/IArray_mp.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_mp.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray_mr.hi b/ghc/lib/prelude/IArray_mr.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_mr.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray_mt.hi b/ghc/lib/prelude/IArray_mt.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_mt.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray_p.hi b/ghc/lib/prelude/IArray_p.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_p.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IArray_t.hi b/ghc/lib/prelude/IArray_t.hi
new file mode 100644
index 0000000000..e419d9766b
--- /dev/null
+++ b/ghc/lib/prelude/IArray_t.hi
@@ -0,0 +1,45 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(List(..), Tuple2)
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b {-# GHC_PRAGMA (:=) a b #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool.hi b/ghc/lib/prelude/IBool.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool.hs b/ghc/lib/prelude/IBool.hs
new file mode 100644
index 0000000000..24f5d1d1e3
--- /dev/null
+++ b/ghc/lib/prelude/IBool.hs
@@ -0,0 +1,71 @@
+module PreludeCore ( Bool(..) ) where
+
+import Prel ( (&&) )
+import Core
+import Cls
+import IChar
+import IInt
+import IList
+import List ( (++), map, foldr )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+----------------------------------------------------------------------
+instance Eq Bool where
+ True == True = True
+ False == False = True
+ _ == _ = False
+
+ True /= False = True
+ False /= True = True
+ _ /= _ = False
+
+----------------------------------------------------------------------
+instance Ord Bool where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp True True = _EQ
+ _tagCmp True False = _GT
+ _tagCmp False True = _LT
+ _tagCmp False False = _EQ
+
+----------------------------------------------------------------------
+instance Ix Bool where
+ range (l,u) = map bdecode [(bencode l) .. (bencode u)]
+ index (l,u) i = (bencode i) - (bencode l)
+ inRange (l,u) i = (bencode i) >= (bencode l) && (bencode i) <= (bencode u)
+
+bencode :: Bool -> Int
+bencode False = 0
+bencode True = 1
+
+bdecode :: Int -> Bool
+bdecode b = if b == 0 then False
+ else if b == 1 then True
+ else error "decode Bool\n"
+
+----------------------------------------------------------------------
+instance Enum Bool where
+ enumFrom False = [False, True]
+ enumFrom True = [True]
+
+ enumFromThen False True = [False, True]
+ enumFromThen True False = [True, False]
+ enumFromThen b _ = bs where bs = b : bs
+
+----------------------------------------------------------------------
+instance Text Bool where
+ readsPrec p
+ = readParen (p > 9)
+ (\ b -> [ (False, c) | ("False", c) <- lex b ]
+ ++ [ (True, c) | ("True", c) <- lex b ])
+
+ showsPrec d p r = (if p then "True" else "False") ++ r
+
+-- ToDo: Binary
diff --git a/ghc/lib/prelude/IBool_mc.hi b/ghc/lib/prelude/IBool_mc.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_mc.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool_mg.hi b/ghc/lib/prelude/IBool_mg.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_mg.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool_mp.hi b/ghc/lib/prelude/IBool_mp.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_mp.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool_mr.hi b/ghc/lib/prelude/IBool_mr.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_mr.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool_mt.hi b/ghc/lib/prelude/IBool_mt.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_mt.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool_p.hi b/ghc/lib/prelude/IBool_p.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_p.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IBool_t.hi b/ghc/lib/prelude/IBool_t.hi
new file mode 100644
index 0000000000..de65c79734
--- /dev/null
+++ b/ghc/lib/prelude/IBool_t.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar.hi b/ghc/lib/prelude/IChar.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar.hs b/ghc/lib/prelude/IChar.hs
new file mode 100644
index 0000000000..01d30425aa
--- /dev/null
+++ b/ghc/lib/prelude/IChar.hs
@@ -0,0 +1,123 @@
+module PreludeCore ( Char(..) ) where
+
+import Prel ( (.), (&&), chr, ord, otherwise, maxChar, minChar, not )
+import Cls
+import Core
+import IInt
+import IList
+import List ( map, (++), foldr )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+gtChar (C# x) (C# y) = gtChar# x y
+geChar (C# x) (C# y) = geChar# x y
+eqChar (C# x) (C# y) = eqChar# x y
+neChar (C# x) (C# y) = neChar# x y
+ltChar (C# x) (C# y) = ltChar# x y
+leChar (C# x) (C# y) = leChar# x y
+
+---------------------------------------------------------------
+
+instance Eq Char where
+ (==) x y = eqChar x y
+ (/=) x y = neChar x y
+
+instance Ord Char where
+ (<=) x y = leChar x y
+ (<) x y = ltChar x y
+ (>=) x y = geChar x y
+ (>) x y = gtChar x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (C# a#) (C# b#)
+ = if (eqChar# a# b#) then _EQ
+ else if (ltChar# a# b#) then _LT else _GT
+
+instance Ix Char where
+ range (c,c') = [c..c']
+ index b@(c,c') ci
+ | inRange b ci = ord ci - ord c
+ | otherwise = error "Ix.Char.index{PreludeCore}: Index out of range\n"
+ inRange (c,c') ci = ord c <= i && i <= ord c'
+ where i = ord ci
+
+instance Enum Char where
+ enumFrom c = map chr [ord c .. ord maxChar]
+ enumFromThen c c' = map chr [ord c, ord c' .. ord lastChar]
+ where lastChar = if c' < c then minChar else maxChar
+
+instance Text Char where
+ readsPrec p = readParen False
+ (\r -> [(c,t) | ('\'':s,t)<- lex r,
+ (c,_) <- readLitChar s])
+
+ showsPrec p '\'' = showString "'\\''"
+ showsPrec p c = showChar '\'' . showLitChar c . showChar '\''
+
+ readList = readParen False (\r -> [(l,t) | ('"':s, t) <- lex r,
+ (l,_) <- readl s ])
+ where readl ('"':s) = [("",s)]
+ readl ('\\':'&':s) = readl s
+ readl s = [(c:cs,u) | (c ,t) <- readLitChar s,
+ (cs,u) <- readl t ]
+
+ showList cs = showChar '"' . showl cs
+ where showl "" = showChar '"'
+ showl ('"':cs) = showString "\\\"" . showl cs
+ showl (c:cs) = showLitChar c . showl cs
+
+instance _CCallable Char
+instance _CReturnable Char
+
+#if defined(__UNBOXED_INSTANCES__)
+---------------------------------------------------------------
+-- Instances for Char#
+---------------------------------------------------------------
+
+instance Eq Char# where
+ (==) x y = eqChar# x y
+ (/=) x y = neChar# x y
+
+instance Ord Char# where
+ (<=) x y = leChar# x y
+ (<) x y = ltChar# x y
+ (>=) x y = geChar# x y
+ (>) x y = gtChar# x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp a b
+ = if (eqChar# a b) then _EQ
+ else if (ltChar# a b) then _LT else _GT
+
+instance Ix Char# where
+ range (c,c') = [c..c']
+ index b@(c,c') ci
+ | inRange b ci = I# (ord# ci - ord# c)
+ | otherwise = error "Ix.Char#.index{PreludeCore}: Index out of range\n"
+ inRange (c,c') ci = ord# c <= i && i <= ord# c'
+ where i = ord# ci
+
+instance Enum Char# where
+ enumFrom c = map chr# [ord# c .. ord# '\255'#]
+ enumFromThen c c' = map chr# [ord# c, ord# c' .. ord# lastChar#]
+ where lastChar# = if c' < c then '\0'# else '\255'#
+ -- default methods not specialised!
+ enumFromTo n m = takeWhile (<= m) (enumFrom n)
+ enumFromThenTo n m p = takeWhile (if m >= n then (<= p) else (>= p))
+ (enumFromThen n m)
+
+-- ToDo: efficient Text Char# instance
+instance Text Char# where
+ readsPrec p s = map (\ (C# c#, s) -> (c#, s)) (readsPrec p s)
+ showsPrec p c = showsPrec p (C# c)
+ readList s = map (\ (x, s) -> (map (\ (C# c#) -> c#) x, s)) (readList s)
+ showList l = showList (map C# l)
+
+instance _CCallable Char#
+instance _CReturnable Char#
+
+#endif {-UNBOXED INSTANCES-}
diff --git a/ghc/lib/prelude/IChar_mc.hi b/ghc/lib/prelude/IChar_mc.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_mc.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar_mg.hi b/ghc/lib/prelude/IChar_mg.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_mg.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar_mp.hi b/ghc/lib/prelude/IChar_mp.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_mp.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar_mr.hi b/ghc/lib/prelude/IChar_mr.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_mr.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar_mt.hi b/ghc/lib/prelude/IChar_mt.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_mt.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar_p.hi b/ghc/lib/prelude/IChar_p.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_p.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IChar_t.hi b/ghc/lib/prelude/IChar_t.hi
new file mode 100644
index 0000000000..308fc67dfc
--- /dev/null
+++ b/ghc/lib/prelude/IChar_t.hi
@@ -0,0 +1,38 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Char(..))
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex.hi b/ghc/lib/prelude/IComplex.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex.hs b/ghc/lib/prelude/IComplex.hs
new file mode 100644
index 0000000000..8988069748
--- /dev/null
+++ b/ghc/lib/prelude/IComplex.hs
@@ -0,0 +1,168 @@
+-- Complex Numbers
+
+module PreludeComplex where
+
+import Cls
+import Core
+
+import IDouble -- instances
+import IChar
+import IFloat
+import IInt
+import IInteger
+import IList
+import List ( (++), foldr )
+import Prel ( (.), (&&), (||), (^), atan2 )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyComplex
+
+-- infix 6 :+
+
+-- data (RealFloat a) => Complex a = a :+ a deriving (Eq,Binary,Text)
+
+instance (Eq a) => Eq (Complex a) where
+ (x :+ y) == (x2 :+ y2) = x == x2 && y == y2
+ (x :+ y) /= (x2 :+ y2) = x /= x2 || y /= y2
+
+instance (RealFloat a) => Num (Complex a) where
+ (x:+y) + (x2:+y2) = (x+x2) :+ (y+y2)
+ (x:+y) - (x2:+y2) = (x-x2) :+ (y-y2)
+ (x:+y) * (x2:+y2) = (x*x2-y*y2) :+ (x*y2+y*x2)
+ negate (x:+y) = negate x :+ negate y
+ abs z = magnitude z :+ 0
+ signum 0 = 0
+ signum z@(x:+y) = x/r :+ y/r where { r = magnitude z }
+ fromInteger n = fromInteger n :+ 0
+ fromInt n = fromInt n :+ 0
+
+instance (RealFloat a) => Fractional (Complex a) where
+ (x:+y) / (x2:+y2) = (x*x3+y*y3) / d :+ (y*x3-x*y3) / d
+ where x3 = scaleFloat k x2
+ y3 = scaleFloat k y2
+ k = - max (exponent x2) (exponent y2)
+ d = x2*x3 + y2*y3
+ fromRational a = fromRational a :+ 0
+ recip a = (1 :+ 0) / a
+
+instance (RealFloat a) => Floating (Complex a) where
+ pi = pi :+ 0
+ exp (x:+y) = expx * cos y :+ expx * sin y
+ where expx = exp x
+ log z = log (magnitude z) :+ phase z
+
+ (**) a b = exp (log a * b)
+ logBase a b = log b / log a
+
+ sqrt 0 = 0
+ sqrt z@(x:+y) = u :+ (if y < 0 then -v else v)
+ where (u,v) = if x < 0 then (v2,u2) else (u2,v2)
+ v2 = abs y / (u2*2)
+ u2 = sqrt ((magnitude z + abs x) / 2)
+
+ sin (x:+y) = sin x * cosh y :+ cos x * sinh y
+ cos (x:+y) = cos x * cosh y :+ (- sin x * sinh y)
+ tan (x:+y) = (sinx*coshy:+cosx*sinhy)/(cosx*coshy:+(-sinx*sinhy))
+ where sinx = sin x
+ cosx = cos x
+ sinhy = sinh y
+ coshy = cosh y
+
+ sinh (x:+y) = cos y * sinh x :+ sin y * cosh x
+ cosh (x:+y) = cos y * cosh x :+ sin y * sinh x
+ tanh (x:+y) = (cosy*sinhx:+siny*coshx)/(cosy*coshx:+siny*sinhx)
+ where siny = sin y
+ cosy = cos y
+ sinhx = sinh x
+ coshx = cosh x
+
+ asin z@(x:+y) = y2:+(-x2)
+ where (x2:+y2) = log (((-y):+x) + sqrt (1 - z*z))
+ acos z@(x:+y) = y3:+(-x3)
+ where (x3:+y3) = log (z + ((-y2):+x2))
+ (x2:+y2) = sqrt (1 - z*z)
+ atan z@(x:+y) = y2:+(-x2)
+ where (x2:+y2) = log (((1-y):+x) / sqrt (1+z*z))
+
+ asinh z = log (z + sqrt (1+z*z))
+ acosh z = log (z + (z+1) * sqrt ((z-1)/(z+1)))
+ atanh z = log ((1+z) / sqrt (1-z*z))
+
+
+instance (Text a) => Text (Complex a) where
+
+ -- magic fixity wired in: infix 6 :+
+
+ readsPrec p
+ = readParen ( p > 6 )
+ (\ r -> [ (x :+ y, s2) | (x, s0) <- readsPrec 7 r,
+ (":+", s1) <- lex s0,
+ (y, s2) <- readsPrec 7 s1 ])
+ showsPrec d (a :+ b)
+ = showParen (d > 6)
+ (showsPrec 7 a . showString " :+ " . showsPrec 7 b)
+
+{-# SPECIALIZE instance Eq (Complex Double) #-}
+{-# SPECIALIZE instance Num (Complex Double) #-}
+{-# SPECIALIZE instance Fractional (Complex Double) #-}
+{-# SPECIALIZE instance Floating (Complex Double) #-}
+
+--NO:{-# SPECIALIZE instance Eq (Complex Float) #-}
+--NO:{-# SPECIALIZE instance Num (Complex Float) #-}
+--NO:{-# SPECIALIZE instance Fractional (Complex Float) #-}
+--NO:{-# SPECIALIZE instance Floating (Complex Float) #-}
+
+#if defined(__UNBOXED_INSTANCES__)
+
+{-# SPECIALIZE instance Eq (Complex Double#) #-}
+{-# SPECIALIZE instance Num (Complex Double#) #-}
+{-# SPECIALIZE instance Fractional (Complex Double#) #-}
+{-# SPECIALIZE instance Floating (Complex Double#) #-}
+{-# SPECIALIZE instance Text (Complex Double#) #-}
+
+#endif
+
+-- ToDo: something for Binary
+
+-- ToDo: Complex Double# s/a{/a{Double#,?/
+
+--{-# GENERATE_SPECS realPart a{Double#} #-}
+realPart :: Complex a -> a
+realPart (x:+y) = x
+
+--{-# GENERATE_SPECS imagPart a{Double#} #-}
+imagPart :: Complex a -> a
+imagPart (x:+y) = y
+
+--{-# GENERATE_SPECS conjugate a{Double#,Double} #-}
+{-# GENERATE_SPECS conjugate a{Double} #-}
+conjugate :: (RealFloat a) => Complex a -> Complex a
+conjugate (x:+y) = x :+ (-y)
+
+--{-# GENERATE_SPECS mkPolar a{Double#,Double} #-}
+{-# GENERATE_SPECS mkPolar a{Double} #-}
+mkPolar :: (RealFloat a) => a -> a -> Complex a
+mkPolar r theta = r * cos theta :+ r * sin theta
+
+--{-# GENERATE_SPECS cis a{Double#,Double} #-}
+{-# GENERATE_SPECS cis a{Double} #-}
+cis :: (RealFloat a) => a -> Complex a
+cis theta = cos theta :+ sin theta
+
+--{-# GENERATE_SPECS polar a{Double#,Double} #-}
+{-# GENERATE_SPECS polar a{Double} #-}
+polar :: (RealFloat a) => Complex a -> (a,a)
+polar z = (magnitude z, phase z)
+
+--{-# GENERATE_SPECS magnitude a{Double#,Double} #-}
+{-# GENERATE_SPECS magnitude a{Double} #-}
+magnitude :: (RealFloat a) => Complex a -> a
+magnitude (x:+y) = scaleFloat k
+ (sqrt ((scaleFloat mk x)^2 + (scaleFloat mk y)^2))
+ where k = max (exponent x) (exponent y)
+ mk = - k
+
+--{-# GENERATE_SPECS phase a{Double#,Double} #-}
+{-# GENERATE_SPECS phase a{Double} #-}
+phase :: (RealFloat a) => Complex a -> a
+phase (x:+y) = atan2 y x
diff --git a/ghc/lib/prelude/IComplex_mc.hi b/ghc/lib/prelude/IComplex_mc.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_mc.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex_mg.hi b/ghc/lib/prelude/IComplex_mg.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_mg.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex_mp.hi b/ghc/lib/prelude/IComplex_mp.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_mp.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex_mr.hi b/ghc/lib/prelude/IComplex_mr.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_mr.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex_mt.hi b/ghc/lib/prelude/IComplex_mt.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_mt.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex_p.hi b/ghc/lib/prelude/IComplex_p.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_p.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IComplex_t.hi b/ghc/lib/prelude/IComplex_t.hi
new file mode 100644
index 0000000000..e4e32ace82
--- /dev/null
+++ b/ghc/lib/prelude/IComplex_t.hi
@@ -0,0 +1,70 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+import PreludeBuiltin(Double(..), Tuple2)
+import PreludeCore(Eq(..), Floating(..), Fractional(..), Num(..), RealFloat(..), Text(..))
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble.hi b/ghc/lib/prelude/IDouble.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble.hs b/ghc/lib/prelude/IDouble.hs
new file mode 100644
index 0000000000..dd3235f204
--- /dev/null
+++ b/ghc/lib/prelude/IDouble.hs
@@ -0,0 +1,299 @@
+module PreludeCore ( Double(..) ) where
+
+#include "../includes/ieee-flpt.h"
+
+import Cls
+import Core
+import IInt
+import IInteger
+import IRatio
+import List ( (++) )
+import Prel ( (^), (^^), otherwise )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyComplex -- for pragmas only
+
+-- definitions of the boxed PrimOps; these will be
+-- used in the case of partial applications, etc.
+
+plusDouble (D# x) (D# y) = D# (plusDouble# x y)
+minusDouble (D# x) (D# y) = D# (minusDouble# x y)
+timesDouble (D# x) (D# y) = D# (timesDouble# x y)
+divideDouble (D# x) (D# y) = D# (divideDouble# x y)
+negateDouble (D# x) = D# (negateDouble# x)
+
+gtDouble (D# x) (D# y) = gtDouble# x y
+geDouble (D# x) (D# y) = geDouble# x y
+eqDouble (D# x) (D# y) = eqDouble# x y
+neDouble (D# x) (D# y) = neDouble# x y
+ltDouble (D# x) (D# y) = ltDouble# x y
+leDouble (D# x) (D# y) = leDouble# x y
+
+double2Int (D# x) = I# (double2Int# x)
+int2Double (I# x) = D# (int2Double# x)
+double2Float (D# x) = F# (double2Float# x)
+float2Double (F# x) = D# (float2Double# x)
+
+expDouble (D# x) = D# (expDouble# x)
+logDouble (D# x) = D# (logDouble# x)
+sqrtDouble (D# x) = D# (sqrtDouble# x)
+sinDouble (D# x) = D# (sinDouble# x)
+cosDouble (D# x) = D# (cosDouble# x)
+tanDouble (D# x) = D# (tanDouble# x)
+asinDouble (D# x) = D# (asinDouble# x)
+acosDouble (D# x) = D# (acosDouble# x)
+atanDouble (D# x) = D# (atanDouble# x)
+sinhDouble (D# x) = D# (sinhDouble# x)
+coshDouble (D# x) = D# (coshDouble# x)
+tanhDouble (D# x) = D# (tanhDouble# x)
+
+powerDouble (D# x) (D# y) = D# (powerDouble# x y)
+
+---------------------------------------------------------------
+
+instance Eq Double where
+ (==) x y = eqDouble x y
+ (/=) x y = neDouble x y
+
+instance Ord Double where
+ (<=) x y = leDouble x y
+ (<) x y = ltDouble x y
+ (>=) x y = geDouble x y
+ (>) x y = gtDouble x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (D# a#) (D# b#)
+ = if (eqDouble# a# b#) then _EQ
+ else if (ltDouble# a# b#) then _LT else _GT
+
+instance Num Double where
+ (+) x y = plusDouble x y
+ (-) x y = minusDouble x y
+ negate x = negateDouble x
+ (*) x y = timesDouble x y
+ abs x | x >= 0 = x
+ | otherwise = negateDouble x
+ signum x | x == 0 = 0
+ | x > 0 = 1
+ | otherwise = -1
+ fromInteger n = encodeFloat n 0
+ fromInt (I# n#) = case (int2Double# n#) of { d# -> D# d# }
+
+instance Real Double where
+ toRational x = (m%1)*(b%1)^^n -- i.e., realFloatToRational x
+ where (m,n) = decodeFloat x
+ b = floatRadix x
+
+instance Fractional Double where
+ (/) x y = divideDouble x y
+ fromRational x = fromRationalX x --ORIG: rationalToRealFloat x
+ recip x = 1 / x
+
+instance Floating Double where
+ pi = 3.141592653589793238
+ exp x = expDouble x
+ log x = logDouble x
+ sqrt x = sqrtDouble x
+ sin x = sinDouble x
+ cos x = cosDouble x
+ tan x = tanDouble x
+ asin x = asinDouble x
+ acos x = acosDouble x
+ atan x = atanDouble x
+ sinh x = sinhDouble x
+ cosh x = coshDouble x
+ tanh x = tanhDouble x
+ (**) x y = powerDouble x y
+ logBase x y = log y / log x
+
+{- WAS: but not all machines have these in their math library:
+ asinh = asinhDouble
+ acosh = acoshDouble
+ atanh = atanhDouble
+-}
+ asinh x = log (x + sqrt (1+x*x))
+ acosh x = log (x + (x+1) * sqrt ((x-1)/(x+1)))
+ atanh x = log ((x+1) / sqrt (1 - x*x))
+
+
+instance RealFrac Double where
+ properFraction x = _properFraction x
+
+ -- just call the versions in Core.hs
+ truncate x = _truncate x
+ round x = _round x
+ ceiling x = _ceiling x
+ floor x = _floor x
+{- OLD:
+ properFraction x
+ | n >= 0 = (fromInteger m * fromInteger b ^ n, 0)
+ | otherwise = (fromInteger w, encodeFloat r n)
+ where (m,n) = decodeFloat x
+ b = floatRadix x
+ (w,r) = quotRem m (b^(-n))
+-}
+
+instance RealFloat Double where
+ floatRadix _ = FLT_RADIX -- from float.h
+ floatDigits _ = DBL_MANT_DIG -- ditto
+ floatRange _ = (DBL_MIN_EXP, DBL_MAX_EXP) -- ditto
+
+ decodeFloat (D# d#)
+ = case decodeDouble# d# of
+ _ReturnIntAndGMP exp# a# s# d# ->
+ (J# a# s# d#, I# exp#)
+
+ encodeFloat (J# a# s# d#) (I# e#)
+ = case encodeDouble# a# s# d# e# of { dbl# -> D# dbl# }
+
+instance Enum Double where
+{- *** RAW PRELUDE ***
+ enumFrom = numericEnumFrom
+ enumFromThen = numericEnumFromThen
+-}
+ enumFrom x = x : enumFrom (x `plusDouble` 1.0)
+ enumFromThen m n = en' m (n `minusDouble` m)
+ where en' m n = m : en' (m `plusDouble` n) n
+
+instance Text Double where
+ readsPrec p x = readSigned readFloat x
+ showsPrec x = showSigned showFloat x
+
+instance _CCallable Double
+instance _CReturnable Double
+
+#if defined(__UNBOXED_INSTANCES__)
+---------------------------------------------------------------
+-- Instances for Double#
+---------------------------------------------------------------
+
+instance Eq Double# where
+ (==) x y = eqDouble# x y
+ (/=) x y = neDouble# x y
+
+instance Ord Double# where
+ (<=) x y = leDouble# x y
+ (<) x y = ltDouble# x y
+ (>=) x y = geDouble# x y
+ (>) x y = gtDouble# x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp a b
+ = if (eqDouble# a b) then _EQ
+ else if (ltDouble# a b) then _LT else _GT
+
+instance Num Double# where
+ (+) x y = plusDouble# x y
+ (-) x y = minusDouble# x y
+ negate x = negateDouble# x
+ (*) x y = timesDouble# x y
+ abs x | x >= 0 = x
+ | otherwise = negateDouble# x
+ signum x | x == 0 = 0
+ | x > 0 = 1
+ | otherwise = -1
+ fromInteger n = encodeFloat n 0
+ fromInt (I# n#) = int2Double# n#
+
+instance Real Double# where
+ toRational x = (m%1)*(b%1)^^n -- i.e., realFloatToRational x
+ where (m,n) = decodeFloat x
+ b = floatRadix x
+
+instance Fractional Double# where
+ (/) x y = divideDouble# x y
+ fromRational x = _fromRational x --ORIG: rationalToRealFloat x
+ recip x = 1 / x
+
+instance Floating Double# where
+ pi = 3.141592653589793238##
+ exp x = expDouble# x
+ log x = logDouble# x
+ sqrt x = sqrtDouble# x
+ sin x = sinDouble# x
+ cos x = cosDouble# x
+ tan x = tanDouble# x
+ asin x = asinDouble# x
+ acos x = acosDouble# x
+ atan x = atanDouble# x
+ sinh x = sinhDouble# x
+ cosh x = coshDouble# x
+ tanh x = tanhDouble# x
+ (**) x y = powerDouble# x y
+ logBase x y = log y / log x
+
+{- WAS: but not all machines have these in their math library:
+ asinh = asinhDouble#
+ acosh = acoshDouble#
+ atanh = atanhDouble#
+-}
+ asinh x = log (x + sqrt (1+x*x))
+ acosh x = log (x + (x+1) * sqrt ((x-1)/(x+1)))
+ atanh x = log ((x+1) / sqrt (1 - x*x))
+
+
+instance RealFrac Double# where
+ -- REPORT:
+ -- properFraction = floatProperFraction
+
+ properFraction x
+ | n >= 0 = (fromInteger m * fromInteger b ^ n, 0)
+ | otherwise = (fromInteger w, encodeFloat r n)
+ where (m,n) = decodeFloat x
+ b = floatRadix x
+ (w,r) = quotRem m (b^(-n))
+
+ -- No default methods for unboxed values ...
+ -- just call the versions in Core.hs
+ truncate x = _truncate x
+ round x = _round x
+ ceiling x = _ceiling x
+ floor x = _floor x
+
+instance RealFloat Double# where
+ floatRadix _ = FLT_RADIX -- from float.h
+ floatDigits _ = DBL_MANT_DIG -- ditto
+ floatRange _ = (DBL_MIN_EXP, DBL_MAX_EXP) -- ditto
+
+ decodeFloat d#
+ = case decodeDouble# d# of
+ _ReturnIntAndGMP exp# a# s# d# ->
+ (J# a# s# d#, I# exp#)
+
+ encodeFloat (J# a# s# d#) (I# e#)
+ = encodeDouble# a# s# d# e#
+
+ -- No default methods for unboxed values ...
+ exponent x = if m == 0 then 0 else n + floatDigits x
+ where (m,n) = decodeFloat x
+
+ significand x = encodeFloat m (- (floatDigits x))
+ where (m,_) = decodeFloat x
+
+ scaleFloat k x = encodeFloat m (n+k)
+ where (m,n) = decodeFloat x
+
+instance Enum Double# where
+ enumFrom x = x : enumFrom (x `plusDouble#` 1.0##)
+ enumFromThen m n = en' m (n `minusDouble#` m)
+ where en' m n = m : en' (m `plusDouble#` n) n
+ -- default methods not specialised!
+ enumFromTo n m = takeWhile (<= m) (enumFrom n)
+ enumFromThenTo n m p = takeWhile (if m >= n then (<= p) else (>= p))
+ (enumFromThen n m)
+
+-- ToDo: efficient Text Double# instance
+instance Text Double# where
+ readsPrec p s = map (\ (D# d#, s) -> (d#, s)) (readsPrec p s)
+ showsPrec p x = showsPrec p (D# x)
+ readList s = map (\ (x, s) -> (map (\ (D# d#) -> d#) x, s)) (readList s)
+ showList l = showList (map D# l)
+
+instance _CCallable Double#
+instance _CReturnable Double#
+
+#endif {-UNBOXED INSTANCES-}
diff --git a/ghc/lib/prelude/IDouble_mc.hi b/ghc/lib/prelude/IDouble_mc.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_mc.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble_mg.hi b/ghc/lib/prelude/IDouble_mg.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_mg.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble_mp.hi b/ghc/lib/prelude/IDouble_mp.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_mp.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble_mr.hi b/ghc/lib/prelude/IDouble_mr.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_mr.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble_mt.hi b/ghc/lib/prelude/IDouble_mt.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_mt.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble_p.hi b/ghc/lib/prelude/IDouble_p.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_p.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IDouble_t.hi b/ghc/lib/prelude/IDouble_t.hi
new file mode 100644
index 0000000000..87d75b8241
--- /dev/null
+++ b/ghc/lib/prelude/IDouble_t.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Double(..))
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat.hi b/ghc/lib/prelude/IFloat.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat.hs b/ghc/lib/prelude/IFloat.hs
new file mode 100644
index 0000000000..59b015ecb7
--- /dev/null
+++ b/ghc/lib/prelude/IFloat.hs
@@ -0,0 +1,154 @@
+module PreludeCore ( Float(..) ) where
+
+#include "../includes/ieee-flpt.h"
+
+import Cls
+import Core
+import IInt
+import IInteger
+import IRatio
+import List ( (++) )
+import Prel ( (^), (^^), otherwise )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyComplex -- for pragmas only
+
+-- definitions of the boxed PrimOps; these will be
+-- used in the case of partial applications, etc.
+
+plusFloat (F# x) (F# y) = F# (plusFloat# x y)
+minusFloat (F# x) (F# y) = F# (minusFloat# x y)
+timesFloat (F# x) (F# y) = F# (timesFloat# x y)
+divideFloat (F# x) (F# y) = F# (divideFloat# x y)
+negateFloat (F# x) = F# (negateFloat# x)
+
+gtFloat (F# x) (F# y) = gtFloat# x y
+geFloat (F# x) (F# y) = geFloat# x y
+eqFloat (F# x) (F# y) = eqFloat# x y
+neFloat (F# x) (F# y) = neFloat# x y
+ltFloat (F# x) (F# y) = ltFloat# x y
+leFloat (F# x) (F# y) = leFloat# x y
+
+float2Int (F# x) = I# (float2Int# x)
+int2Float (I# x) = F# (int2Float# x)
+
+expFloat (F# x) = F# (expFloat# x)
+logFloat (F# x) = F# (logFloat# x)
+sqrtFloat (F# x) = F# (sqrtFloat# x)
+sinFloat (F# x) = F# (sinFloat# x)
+cosFloat (F# x) = F# (cosFloat# x)
+tanFloat (F# x) = F# (tanFloat# x)
+asinFloat (F# x) = F# (asinFloat# x)
+acosFloat (F# x) = F# (acosFloat# x)
+atanFloat (F# x) = F# (atanFloat# x)
+sinhFloat (F# x) = F# (sinhFloat# x)
+coshFloat (F# x) = F# (coshFloat# x)
+tanhFloat (F# x) = F# (tanhFloat# x)
+
+powerFloat (F# x) (F# y) = F# (powerFloat# x y)
+
+---------------------------------------------------------------
+
+instance Eq Float where
+ (==) x y = eqFloat x y
+ (/=) x y = neFloat x y
+
+instance Ord Float where
+ (<=) x y = leFloat x y
+ (<) x y = ltFloat x y
+ (>=) x y = geFloat x y
+ (>) x y = gtFloat x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (F# a#) (F# b#)
+ = if (eqFloat# a# b#) then _EQ
+ else if (ltFloat# a# b#) then _LT else _GT
+
+instance Num Float where
+ (+) x y = plusFloat x y
+ (-) x y = minusFloat x y
+ negate x = negateFloat x
+ (*) x y = timesFloat x y
+ abs x | x >= 0 = x
+ | otherwise = negateFloat x
+ signum x | x == 0 = 0
+ | x > 0 = 1
+ | otherwise = -1
+
+ fromInteger n = encodeFloat n 0
+ fromInt i = int2Float i
+
+instance Real Float where
+ toRational x = (m%1)*(b%1)^^n -- i.e., realFloatToRational x
+ where (m,n) = decodeFloat x
+ b = floatRadix x
+
+instance Fractional Float where
+ (/) x y = divideFloat x y
+ fromRational x = fromRationalX x -- ORIG: rationalToRealFloat x
+
+instance Floating Float where
+ pi = 3.141592653589793238
+ exp x = expFloat x
+ log x = logFloat x
+ sqrt x = sqrtFloat x
+ sin x = sinFloat x
+ cos x = cosFloat x
+ tan x = tanFloat x
+ asin x = asinFloat x
+ acos x = acosFloat x
+ atan x = atanFloat x
+ sinh x = sinhFloat x
+ cosh x = coshFloat x
+ tanh x = tanhFloat x
+ (**) x y = powerFloat x y
+
+{- WAS: but not all machines have these in their math library:
+ asinh = asinhFloat
+ acosh = acoshFloat
+ atanh = atanhFloat
+-}
+ asinh x = log (x + sqrt (1+x*x))
+ acosh x = log (x + (x+1) * sqrt ((x-1)/(x+1)))
+ atanh x = log ((x+1) / sqrt (1 - x*x))
+
+instance RealFrac Float where
+ properFraction x = _properFraction x
+
+ -- just call the versions in Core.hs
+ truncate x = _truncate x
+ round x = _round x
+ ceiling x = _ceiling x
+ floor x = _floor x
+
+instance RealFloat Float where
+ floatRadix _ = FLT_RADIX -- from float.h
+ floatDigits _ = FLT_MANT_DIG -- ditto
+ floatRange _ = (FLT_MIN_EXP, FLT_MAX_EXP) -- ditto
+
+ decodeFloat (F# f#)
+ = case decodeFloat# f# of
+ _ReturnIntAndGMP exp# a# s# d# ->
+ (J# a# s# d#, I# exp#)
+
+ encodeFloat (J# a# s# d#) (I# e#)
+ = case encodeFloat# a# s# d# e# of { flt# -> F# flt# }
+
+instance Enum Float where
+{- *** RAW PRELUDE ***
+ enumFrom = numericEnumFrom
+ enumFromThen = numericEnumFromThen
+-}
+ enumFrom x = x : enumFrom (x `plusFloat` 1.0)
+ enumFromThen m n = en' m (n `minusFloat` m)
+ where en' m n = m : en' (m `plusFloat` n) n
+
+instance Text Float where
+ readsPrec p x = readSigned readFloat x
+ showsPrec x = showSigned showFloat x
+
+---------------------------------------------------------------
+instance _CCallable Float
+instance _CReturnable Float
diff --git a/ghc/lib/prelude/IFloat_mc.hi b/ghc/lib/prelude/IFloat_mc.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_mc.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat_mg.hi b/ghc/lib/prelude/IFloat_mg.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_mg.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat_mp.hi b/ghc/lib/prelude/IFloat_mp.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_mp.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat_mr.hi b/ghc/lib/prelude/IFloat_mr.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_mr.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat_mt.hi b/ghc/lib/prelude/IFloat_mt.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_mt.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat_p.hi b/ghc/lib/prelude/IFloat_p.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_p.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IFloat_t.hi b/ghc/lib/prelude/IFloat_t.hi
new file mode 100644
index 0000000000..a3e4f89723
--- /dev/null
+++ b/ghc/lib/prelude/IFloat_t.hi
@@ -0,0 +1,88 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Float(..))
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt.hi b/ghc/lib/prelude/IInt.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt.hs b/ghc/lib/prelude/IInt.hs
new file mode 100644
index 0000000000..2879d6a3ff
--- /dev/null
+++ b/ghc/lib/prelude/IInt.hs
@@ -0,0 +1,299 @@
+module PreludeCore ( Int(..), rangeComplaint_Ix_Int#{-see comment later-} ) where
+
+import Cls
+import Core
+import IInteger -- instances
+import IRatio ( (%) )
+import ITup2
+import List ( (++), foldr )
+import Prel ( otherwise, (&&), (||), chr, ord )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+-- definitions of the boxed PrimOps; these will be
+-- used in the case of partial applications, etc.
+
+plusInt (I# x) (I# y) = I# (plusInt# x y)
+minusInt(I# x) (I# y) = I# (minusInt# x y)
+timesInt(I# x) (I# y) = I# (timesInt# x y)
+quotInt (I# x) (I# y) = I# (quotInt# x y)
+divInt (I# x) (I# y) = I# (divInt# x y)
+remInt (I# x) (I# y) = I# (remInt# x y)
+negateInt (I# x) = I# (negateInt# x)
+gtInt (I# x) (I# y) = gtInt# x y
+geInt (I# x) (I# y) = geInt# x y
+eqInt (I# x) (I# y) = eqInt# x y
+neInt (I# x) (I# y) = neInt# x y
+ltInt (I# x) (I# y) = ltInt# x y
+leInt (I# x) (I# y) = leInt# x y
+
+---------------------------------------------------------------
+
+instance Eq Int where
+ (==) x y = eqInt x y
+ (/=) x y = neInt x y
+
+instance Ord Int where
+ (<=) x y = leInt x y
+ (<) x y = ltInt x y
+ (>=) x y = geInt x y
+ (>) x y = gtInt x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (I# a#) (I# b#)
+ = if (a# ==# b#) then _EQ
+ else if (a# <# b#) then _LT else _GT
+
+instance Num Int where
+ (+) x y = plusInt x y
+ (-) x y = minusInt x y
+ negate x = negateInt x
+ (*) x y = timesInt x y
+ abs n = if n `geInt` 0 then n else (negateInt n)
+
+ signum n | n `ltInt` 0 = negateInt 1
+ | n `eqInt` 0 = 0
+ | otherwise = 1
+
+ fromInteger (J# a# s# d#)
+ = case (integer2Int# a# s# d#) of { i# -> I# i# }
+
+ fromInt n = n
+
+instance Real Int where
+ toRational x = toInteger x % 1
+
+instance Integral Int where
+ a@(I# _) `quotRem` b@(I# _) = (a `quotInt` b, a `remInt` b)
+ -- OK, so I made it a little stricter. Shoot me. (WDP 94/10)
+
+ -- following chks for zero divisor are non-standard (WDP)
+ a `quot` b = if b /= 0
+ then a `quotInt` b
+ else error "Integral.Int.quot{PreludeCore}: divide by 0\n"
+ a `rem` b = if b /= 0
+ then a `remInt` b
+ else error "Integral.Int.rem{PreludeCore}: divide by 0\n"
+
+ x `div` y = if x > 0 && y < 0 then quotInt (x-y-1) y
+ else if x < 0 && y > 0 then quotInt (x-y+1) y
+ else quotInt x y
+ x `mod` y = if x > 0 && y < 0 || x < 0 && y > 0 then
+ if r/=0 then r+y else 0
+ else
+ r
+ where r = remInt x y
+
+ divMod x@(I# _) y@(I# _) = (x `div` y, x `mod` y)
+ -- Stricter. Sorry if you don't like it. (WDP 94/10)
+
+ even x = eqInt (x `mod` 2) 0
+ odd x = neInt (x `mod` 2) 0
+
+ toInteger (I# n#) = int2Integer# n# -- give back a full-blown Integer
+ toInt x = x
+
+rangeComplaint_Ix_Int# i m n -- export it so it will *not* be floated inwards
+ = error ("Ix.Int.index2{PreludeCore}: Index "
+ ++ show (I# i) ++ " outside the range "
+ ++ show (I# m,I# n) ++ ".\n")
+
+instance Ix Int where
+ range (m,n) = [m..n]
+ index b@(I# m, I# n) (I# i)
+ | inRange b (I# i) = I# (i -# m)
+ | otherwise = rangeComplaint_Ix_Int# i m n
+ inRange (I# m, I# n) (I# i) = m <=# i && i <=# n
+
+instance Enum Int where
+{- RAW PRELUDE ************************
+ enumFrom = numericEnumFrom
+ enumFromThen = numericEnumFromThen
+-}
+#ifndef USE_FOLDR_BUILD
+ enumFrom x = x : enumFrom (x `plusInt` 1)
+#else
+ {-# INLINE enumFromTo #-}
+ {-# INLINE enumFrom #-}
+ enumFromTo x y = _build (\ c n ->
+ let g x = if x <= y then x `c` g (x `plusInt` 1) else n in g x)
+ enumFrom x = _build (\ c _ ->
+ let g x = x `c` g (x `plusInt` 1) in g x)
+#endif
+ enumFromThen m n = en' m (n `minusInt` m)
+ where en' m n = m : en' (m `plusInt` n) n
+
+instance Text Int where
+ readsPrec p x = readSigned readDec x
+ showsPrec x = showSigned showInt x
+
+---------------------------------------------------------------
+instance _CCallable Int
+instance _CReturnable Int
+
+#if defined(__UNBOXED_INSTANCES__)
+---------------------------------------------------------------
+-- Instances for Int#
+---------------------------------------------------------------
+
+instance Eq Int# where
+ (==) x y = eqInt# x y
+ (/=) x y = neInt# x y
+
+instance Ord Int# where
+ (<=) x y = leInt# x y
+ (<) x y = ltInt# x y
+ (>=) x y = geInt# x y
+ (>) x y = gtInt# x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp a b
+ = if (a `eqInt#` b) then _EQ
+ else if (a `ltInt#` b) then _LT else _GT
+
+instance Num Int# where
+ (+) x y = plusInt# x y
+ (-) x y = minusInt# x y
+ negate x = negateInt# x
+ (*) x y = timesInt# x y
+ abs n = if n `geInt#` 0 then n else (negateInt# n)
+
+ signum n | n `ltInt#` 0 = negateInt# 1
+ | n `eqInt#` 0 = 0
+ | otherwise = 1
+
+ fromInteger (J# a# s# d#)
+ = integer2Int# a# s# d#
+
+ fromInt (I# i#) = i#
+
+instance Real Int# where
+ toRational x = toInteger x % 1
+
+instance Integral Int# where
+ a `quotRem` b = (a `quotInt#` b, a `remInt#` b)
+
+ -- following chks for zero divisor are non-standard (WDP)
+ a `quot` b = if b /= 0
+ then a `quotInt#` b
+ else error "Integral.Int#.quot{PreludeCore}: divide by 0\n"
+ a `rem` b = if b /= 0
+ then a `remInt#` b
+ else error "Integral.Int#.rem{PreludeCore}: divide by 0\n"
+
+ x `div` y = if x > 0 && y < 0 then quotInt# (x-y-1) y
+ else if x < 0 && y > 0 then quotInt# (x-y+1) y
+ else quotInt# x y
+ x `mod` y = if x > 0 && y < 0 || x < 0 && y > 0 then
+ if r/=0 then r+y else 0
+ else
+ r
+ where r = remInt# x y
+
+ divMod x y = (x `div` y, x `mod` y)
+
+ even x = eqInt# (x `mod` 2) 0
+ odd x = neInt# (x `mod` 2) 0
+
+ toInteger n# = int2Integer# n# -- give back a full-blown Integer
+ toInt n# = I# n#
+
+instance Ix Int# where
+ range (m,n) = [m..n]
+ index b@(m, n) i
+ | inRange b i = I# (i -# m)
+ | otherwise = rangeComplaint_Ix_Int# i m n
+ inRange (m, n) i = m <=# i && i <=# n
+
+instance Enum Int# where
+ enumFrom x = x : enumFrom (x `plusInt#` 1)
+ enumFromThen m n = en' m (n `minusInt#` m)
+ where en' m n = m : en' (m `plusInt#` n) n
+ -- default methods not specialised!
+ enumFromTo n m = takeWhile (<= m) (enumFrom n)
+ enumFromThenTo n m p = takeWhile (if m >= n then (<= p) else (>= p))
+ (enumFromThen n m)
+
+-- ToDo: efficient Text Int# instance
+instance Text Int# where
+ readsPrec p s = map (\ (I# i#, s) -> (i#, s)) (readsPrec p s)
+ showsPrec p x = showsPrec p (I# x)
+ readList s = map (\ (x, s) -> (map (\ (I# i#) -> i#) x, s)) (readList s)
+ showList l = showList (map I# l)
+
+instance _CCallable Int#
+instance _CReturnable Int#
+
+#endif {-UNBOXED INSTANCES-}
+
+---------------------------------------------------------------
+-- Instances for Addr Word etc #
+---------------------------------------------------------------
+
+instance _CCallable _Addr
+instance _CCallable _Word
+instance _CCallable _MallocPtr
+
+instance _CReturnable _Addr
+instance _CReturnable _Word
+instance _CReturnable ()
+instance _CReturnable _MallocPtr
+
+#ifndef __PARALLEL_HASKELL__
+instance _CCallable (_StablePtr a)
+instance _CReturnable (_StablePtr a)
+#endif
+
+---------------------------------------------------------------
+gtAddr (A# x) (A# y) = gtAddr# x y
+geAddr (A# x) (A# y) = geAddr# x y
+eqAddr (A# x) (A# y) = eqAddr# x y
+neAddr (A# x) (A# y) = neAddr# x y
+ltAddr (A# x) (A# y) = ltAddr# x y
+leAddr (A# x) (A# y) = leAddr# x y
+
+instance Eq _Addr where
+ (==) x y = eqAddr x y
+ (/=) x y = neAddr x y
+
+instance Ord _Addr where
+ (<=) x y = leAddr x y
+ (<) x y = ltAddr x y
+ (>=) x y = geAddr x y
+ (>) x y = gtAddr x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (A# a#) (A# b#)
+ = if (eqAddr# a# b#) then _EQ
+ else if (ltAddr# a# b#) then _LT else _GT
+
+---------------------------------------------------------------
+gtWord (W# x) (W# y) = gtWord# x y
+geWord (W# x) (W# y) = geWord# x y
+eqWord (W# x) (W# y) = eqWord# x y
+neWord (W# x) (W# y) = neWord# x y
+ltWord (W# x) (W# y) = ltWord# x y
+leWord (W# x) (W# y) = leWord# x y
+
+instance Eq _Word where
+ (==) x y = eqWord x y
+ (/=) x y = neWord x y
+
+instance Ord _Word where
+ (<=) x y = leWord x y
+ (<) x y = ltWord x y
+ (>=) x y = geWord x y
+ (>) x y = gtWord x y
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (W# a#) (W# b#)
+ = if (eqWord# a# b#) then _EQ
+ else if (ltWord# a# b#) then _LT else _GT
diff --git a/ghc/lib/prelude/IInt_mc.hi b/ghc/lib/prelude/IInt_mc.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt_mc.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt_mg.hi b/ghc/lib/prelude/IInt_mg.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt_mg.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt_mp.hi b/ghc/lib/prelude/IInt_mp.hi
new file mode 100644
index 0000000000..a0f692db53
--- /dev/null
+++ b/ghc/lib/prelude/IInt_mp.hi
@@ -0,0 +1,106 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt_mr.hi b/ghc/lib/prelude/IInt_mr.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt_mr.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt_mt.hi b/ghc/lib/prelude/IInt_mt.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt_mt.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt_p.hi b/ghc/lib/prelude/IInt_p.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt_p.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInt_t.hi b/ghc/lib/prelude/IInt_t.hi
new file mode 100644
index 0000000000..e3527248ad
--- /dev/null
+++ b/ghc/lib/prelude/IInt_t.hi
@@ -0,0 +1,110 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Tuple0, _Addr(..), _Word(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+rangeComplaint_Ix_Int# :: Int# -> Int# -> Int# -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ _!_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger.hi b/ghc/lib/prelude/IInteger.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger.hs b/ghc/lib/prelude/IInteger.hs
new file mode 100644
index 0000000000..ed59ee7bdf
--- /dev/null
+++ b/ghc/lib/prelude/IInteger.hs
@@ -0,0 +1,162 @@
+module PreludeCore (
+ Integer(..),
+ int2Integer,
+ _integer_0, _integer_1, _integer_m1
+ ) where
+
+import Cls
+import Core
+import IInt
+import IRatio ( (%) )
+import ITup2 -- instances
+import List ( (++), foldr )
+import Prel ( not, otherwise, (&&) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+------------------------------------------------------
+-- a magical Integer-ish function that
+-- the compiler inserts references to
+
+int2Integer :: Int -> Integer
+int2Integer (I# i#) = int2Integer# i#
+
+------------------------------------------------------
+-- some *very* heavily-used constants
+
+_integer_0, _integer_1, _integer_m1 :: Integer
+_integer_0 = 0
+_integer_1 = 1
+_integer_m1 = (-1)
+
+------------------------------------------------------
+
+instance Eq Integer where
+ (J# a1 s1 d1) == (J# a2 s2 d2)
+ = (cmpInteger# a1 s1 d1 a2 s2 d2) ==# 0#
+
+ (J# a1 s1 d1) /= (J# a2 s2 d2)
+ = (cmpInteger# a1 s1 d1 a2 s2 d2) /=# 0#
+
+instance Ord Integer where
+ (J# a1 s1 d1) <= (J# a2 s2 d2)
+ = (cmpInteger# a1 s1 d1 a2 s2 d2) <=# 0#
+
+ (J# a1 s1 d1) < (J# a2 s2 d2)
+ = (cmpInteger# a1 s1 d1 a2 s2 d2) <# 0#
+
+ (J# a1 s1 d1) >= (J# a2 s2 d2)
+ = (cmpInteger# a1 s1 d1 a2 s2 d2) >=# 0#
+
+ (J# a1 s1 d1) > (J# a2 s2 d2)
+ = (cmpInteger# a1 s1 d1 a2 s2 d2) ># 0#
+
+ x@(J# a1 s1 d1) `max` y@(J# a2 s2 d2)
+ = if ((cmpInteger# a1 s1 d1 a2 s2 d2) ># 0#) then x else y
+
+ x@(J# a1 s1 d1) `min` y@(J# a2 s2 d2)
+ = if ((cmpInteger# a1 s1 d1 a2 s2 d2) <# 0#) then x else y
+
+ _tagCmp (J# a1 s1 d1) (J# a2 s2 d2)
+ = case cmpInteger# a1 s1 d1 a2 s2 d2 of { res# ->
+ if res# <# 0# then _LT else
+ if res# ># 0# then _GT else _EQ
+ }
+
+instance Num Integer where
+ (+) (J# a1 s1 d1) (J# a2 s2 d2)
+ = plusInteger# a1 s1 d1 a2 s2 d2
+
+ (-) (J# a1 s1 d1) (J# a2 s2 d2)
+ = minusInteger# a1 s1 d1 a2 s2 d2
+
+ negate (J# a s d) = negateInteger# a s d
+
+ (*) (J# a1 s1 d1) (J# a2 s2 d2)
+ = timesInteger# a1 s1 d1 a2 s2 d2
+
+ -- ORIG: abs n = if n >= 0 then n else -n
+
+ abs n@(J# a1 s1 d1)
+ = case _integer_0 of { J# a2 s2 d2 ->
+ if (cmpInteger# a1 s1 d1 a2 s2 d2) >=# 0#
+ then n
+ else negateInteger# a1 s1 d1
+ }
+
+ {- ORIG:
+ signum n | n < 0 = -1
+ | n == 0 = 0
+ | otherwise= 1
+ -}
+
+ signum n@(J# a1 s1 d1)
+ = case _integer_0 of { J# a2 s2 d2 ->
+ let
+ cmp = cmpInteger# a1 s1 d1 a2 s2 d2
+ in
+ if cmp ># 0# then _integer_1
+ else if cmp ==# 0# then _integer_0
+ else _integer_m1
+ }
+
+ fromInteger x = x
+
+ fromInt (I# n#) = int2Integer# n# -- gives back a full-blown Integer
+
+instance Real Integer where
+ toRational x = x % 1
+
+instance Integral Integer where
+ quotRem (J# a1 s1 d1) (J# a2 s2 d2)
+ = case (quotRemInteger# a1 s1 d1 a2 s2 d2) of
+ _Return2GMPs a3 s3 d3 a4 s4 d4
+ -> (J# a3 s3 d3, J# a4 s4 d4)
+
+{- USING THE UNDERLYING "GMP" CODE IS DUBIOUS FOR NOW:
+
+ divMod (J# a1 s1 d1) (J# a2 s2 d2)
+ = case (divModInteger# a1 s1 d1 a2 s2 d2) of
+ _Return2GMPs a3 s3 d3 a4 s4 d4
+ -> (J# a3 s3 d3, J# a4 s4 d4)
+-}
+ toInteger n = n
+ toInt (J# a s d) = case (integer2Int# a s d) of { n# -> I# n# }
+
+ -- the rest are identical to the report default methods;
+ -- you get slightly better code if you let the compiler
+ -- see them right here:
+ n `quot` d = q where (q,r) = quotRem n d
+ n `rem` d = r where (q,r) = quotRem n d
+ n `div` d = q where (q,r) = divMod n d
+ n `mod` d = r where (q,r) = divMod n d
+
+ divMod n d = case (quotRem n d) of { qr@(q,r) ->
+ if signum r == - signum d then (q-1, r+d) else qr }
+ -- Case-ified by WDP 94/10
+
+ even x = (==) (rem x 2) 0
+ odd x = (/=) (rem x 2) 0
+
+instance Ix Integer where
+ range (m,n) = [m..n]
+ index b@(m,n) i
+ | inRange b i = fromInteger (i - m)
+ | otherwise = error ("Ix.Integer.index{PreludeCore}: Index "
+ ++ show i ++ " outside the range "
+ ++ show b ++ ".\n")
+ inRange (m,n) i = m <= i && i <= n
+
+instance Enum Integer where
+{- RAW PRELUDE ************************
+ enumFrom = numericEnumFrom
+ enumFromThen = numericEnumFromThen
+-}
+ enumFrom n = n : enumFrom (n + 1)
+ enumFromThen m n = en' m (n - m)
+ where en' m n = m : en' (m + n) n
+
+
+instance Text Integer where
+ readsPrec p x = readSigned readDec x
+ showsPrec x = showSigned showInt x
diff --git a/ghc/lib/prelude/IInteger_mc.hi b/ghc/lib/prelude/IInteger_mc.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_mc.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger_mg.hi b/ghc/lib/prelude/IInteger_mg.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_mg.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger_mp.hi b/ghc/lib/prelude/IInteger_mp.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_mp.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger_mr.hi b/ghc/lib/prelude/IInteger_mr.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_mr.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger_mt.hi b/ghc/lib/prelude/IInteger_mt.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_mt.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger_p.hi b/ghc/lib/prelude/IInteger_p.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_p.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IInteger_t.hi b/ghc/lib/prelude/IInteger_t.hi
new file mode 100644
index 0000000000..7ba1b385e1
--- /dev/null
+++ b/ghc/lib/prelude/IInteger_t.hi
@@ -0,0 +1,67 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeBuiltin(Int(..), Integer(..))
+_integer_0 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [0#] _N_ #-}
+_integer_1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [1#] _N_ #-}
+_integer_m1 :: Integer
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+int2Integer :: Int -> Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IList.hi b/ghc/lib/prelude/IList.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList.hs b/ghc/lib/prelude/IList.hs
new file mode 100644
index 0000000000..30f6da3981
--- /dev/null
+++ b/ghc/lib/prelude/IList.hs
@@ -0,0 +1,63 @@
+module PreludeBuiltin where
+
+import Prel ( (&&) )
+import Cls
+import Core ( _readList, _showList )
+import IChar
+import IInt
+import List ( (++) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+instance (Eq a) => Eq [a] where
+ [] == [] = True
+ (x:xs) == (y:ys) = x == y && xs == ys
+ [] == ys = False
+ xs == [] = False
+ xs /= ys = if (xs == ys) then False else True
+
+instance (Ord a) => Ord [a] where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp [] [] = _EQ
+ _tagCmp (x:xs) [] = _GT
+ _tagCmp [] (y:ys) = _LT
+ _tagCmp (x:xs) (y:ys) = case _tagCmp x y of
+ _LT -> _LT
+ _GT -> _GT
+ _EQ -> _tagCmp xs ys
+
+instance (Text a) => Text [a] where
+ readsPrec p = readList
+ showsPrec p = showList
+
+{-# SPECIALIZE instance Eq [Char] #-}
+{-# SPECIALIZE instance Ord [Char] #-}
+{-# SPECIALIZE instance Text [Char] #-}
+
+#if defined(__OVERLAPPING_INSTANCES__)
+instance _CCallable [Char]
+instance _CReturnable [Char]
+#endif
+
+{-# SPECIALIZE instance Eq [Int] #-}
+{-# SPECIALIZE instance Ord [Int] #-}
+{-# SPECIALIZE instance Text [Int] #-}
+
+
+#if defined(__UNBOXED_INSTANCES__)
+
+{-# GENERATE_SPECS instance a :: Eq [a] #-}
+{-# GENERATE_SPECS instance a :: Ord [a] #-}
+{-# GENERATE_SPECS instance a :: Text [a] #-}
+
+instance _CCallable [Char#]
+instance _CReturnable [Char#]
+
+#endif
diff --git a/ghc/lib/prelude/IList_mc.hi b/ghc/lib/prelude/IList_mc.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_mc.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList_mg.hi b/ghc/lib/prelude/IList_mg.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_mg.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList_mp.hi b/ghc/lib/prelude/IList_mp.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_mp.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList_mr.hi b/ghc/lib/prelude/IList_mr.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_mr.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList_mt.hi b/ghc/lib/prelude/IList_mt.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_mt.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList_p.hi b/ghc/lib/prelude/IList_p.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_p.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IList_t.hi b/ghc/lib/prelude/IList_t.hi
new file mode 100644
index 0000000000..d98883a68c
--- /dev/null
+++ b/ghc/lib/prelude/IList_t.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ord(..), Text(..), _CCallable(..), _CReturnable(..))
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/IO.hi b/ghc/lib/prelude/IO.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO.hs b/ghc/lib/prelude/IO.hs
new file mode 100644
index 0000000000..53aa104335
--- /dev/null
+++ b/ghc/lib/prelude/IO.hs
@@ -0,0 +1,137 @@
+-- *** what's left after removing data/type decls
+
+-- I/O functions and definitions
+
+module PreludeIO where
+
+import Cls
+import Core
+import List ( (++), foldr )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyIO
+
+-- File and channel names:
+
+stdin = "stdin"
+stdout = "stdout"
+stderr = "stderr"
+stdecho = "stdecho"
+
+done :: Dialogue
+readFile :: String -> FailCont -> StrCont -> Dialogue
+writeFile :: String -> String -> FailCont -> SuccCont -> Dialogue
+appendFile :: String -> String -> FailCont -> SuccCont -> Dialogue
+readBinFile :: String -> FailCont -> BinCont -> Dialogue
+writeBinFile :: String -> Bin -> FailCont -> SuccCont -> Dialogue
+appendBinFile :: String -> Bin -> FailCont -> SuccCont -> Dialogue
+deleteFile :: String -> FailCont -> SuccCont -> Dialogue
+statusFile :: String -> FailCont -> StrCont -> Dialogue
+readChan :: String -> FailCont -> StrCont -> Dialogue
+appendChan :: String -> String -> FailCont -> SuccCont -> Dialogue
+readBinChan :: String -> FailCont -> BinCont -> Dialogue
+appendBinChan :: String -> Bin -> FailCont -> SuccCont -> Dialogue
+statusChan :: String -> FailCont -> StrCont -> Dialogue
+echo :: Bool -> FailCont -> SuccCont -> Dialogue
+getArgs :: FailCont -> StrListCont -> Dialogue
+getProgName :: FailCont -> StrCont -> Dialogue
+getEnv :: String -> FailCont -> StrCont -> Dialogue
+setEnv :: String -> String -> FailCont -> SuccCont -> Dialogue
+sigAction :: Int -> SigAct -> FailCont -> SuccCont -> Dialogue
+
+done resps = []
+
+readFile name fail succ resps =
+ (ReadFile name) : strDispatch fail succ resps
+
+writeFile name contents fail succ resps =
+ (WriteFile name contents) : succDispatch fail succ resps
+
+appendFile name contents fail succ resps =
+ (AppendFile name contents) : succDispatch fail succ resps
+
+readBinFile name fail succ resps =
+ (ReadBinFile name) : binDispatch fail succ resps
+
+writeBinFile name contents fail succ resps =
+ (WriteBinFile name contents) : succDispatch fail succ resps
+
+appendBinFile name contents fail succ resps =
+ (AppendBinFile name contents) : succDispatch fail succ resps
+
+deleteFile name fail succ resps =
+ (DeleteFile name) : succDispatch fail succ resps
+
+statusFile name fail succ resps =
+ (StatusFile name) : strDispatch fail succ resps
+
+readChan name fail succ resps =
+ (ReadChan name) : strDispatch fail succ resps
+
+appendChan name contents fail succ resps =
+ (AppendChan name contents) : succDispatch fail succ resps
+
+readBinChan name fail succ resps =
+ (ReadBinChan name) : binDispatch fail succ resps
+
+appendBinChan name contents fail succ resps =
+ (AppendBinChan name contents) : succDispatch fail succ resps
+
+statusChan name fail succ resps =
+ (StatusChan name) : strDispatch fail succ resps
+
+echo bool fail succ resps =
+ (Echo bool) : succDispatch fail succ resps
+
+getArgs fail succ resps =
+ GetArgs : strListDispatch fail succ resps
+
+getProgName fail succ resps =
+ GetProgName : strDispatch fail succ resps
+
+getEnv name fail succ resps =
+ (GetEnv name) : strDispatch fail succ resps
+
+setEnv name val fail succ resps =
+ (SetEnv name val) : succDispatch fail succ resps
+
+sigAction signal action fail succ resps =
+ (SigAction signal action) : succDispatch fail succ resps
+
+strDispatch fail succ (resp:resps) =
+ case resp of Str val -> succ val resps
+ Failure msg -> fail msg resps
+
+strListDispatch fail succ (resp:resps) =
+ case resp of StrList val -> succ val resps
+ Failure msg -> fail msg resps
+
+binDispatch fail succ (resp:resps) =
+ case resp of Bn val -> succ val resps
+ Failure msg -> fail msg resps
+
+succDispatch fail succ (resp:resps) =
+ case resp of Success -> succ resps
+ Failure msg -> fail msg resps
+
+
+abort :: FailCont
+abort err = done
+
+exit :: FailCont
+exit err = appendChan stderr (msg ++ "\n") abort done
+ where msg = case err of ReadError s -> s
+ WriteError s -> s
+ SearchError s -> s
+ FormatError s -> s
+ OtherError s -> s
+ EOD -> "EOD"
+
+print :: (Text a) => a -> Dialogue
+print x = appendChan stdout (show x) exit done
+prints :: (Text a) => a -> String -> Dialogue
+prints x s = appendChan stdout (shows x s) exit done
+
+interact :: (String -> String) -> Dialogue
+interact f = readChan stdin exit
+ (\x -> appendChan stdout (f x) exit done)
diff --git a/ghc/lib/prelude/IO_mc.hi b/ghc/lib/prelude/IO_mc.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_mc.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO_mg.hi b/ghc/lib/prelude/IO_mg.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_mg.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO_mp.hi b/ghc/lib/prelude/IO_mp.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_mp.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO_mr.hi b/ghc/lib/prelude/IO_mr.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_mr.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO_mt.hi b/ghc/lib/prelude/IO_mt.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_mt.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO_p.hi b/ghc/lib/prelude/IO_p.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_p.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IO_t.hi b/ghc/lib/prelude/IO_t.hi
new file mode 100644
index 0000000000..14d05dd892
--- /dev/null
+++ b/ghc/lib/prelude/IO_t.hi
@@ -0,0 +1,71 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..), Text(..))
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio.hi b/ghc/lib/prelude/IRatio.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio.hs b/ghc/lib/prelude/IRatio.hs
new file mode 100644
index 0000000000..53cbeeeb48
--- /dev/null
+++ b/ghc/lib/prelude/IRatio.hs
@@ -0,0 +1,156 @@
+--*** All of PreludeRatio, except the actual data/type decls.
+--*** data Ratio ... is builtin (no need to import TyRatio)
+
+module PreludeRatio where
+
+import Cls
+import Core
+import IChar
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import List ( iterate, (++), foldr, takeWhile )
+import Prel ( (&&), (||), (.), otherwise, gcd, fromIntegral, id )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+--infixl 7 %, :%
+
+prec = (7 :: Int)
+
+{-# GENERATE_SPECS (%) a{Integer} #-}
+(%) :: (Integral a) => a -> a -> Ratio a
+
+numerator :: Ratio a -> a
+numerator (x:%y) = x
+
+denominator :: Ratio a -> a
+denominator (x:%y) = y
+
+
+x % y = reduce (x * signum y) (abs y)
+
+reduce _ 0 = error "(%){PreludeRatio}: zero denominator\n"
+reduce x y = (x `quot` d) :% (y `quot` d)
+ where d = gcd x y
+
+instance (Integral a) => Eq (Ratio a) where
+ {- works because Ratios held in reduced form -}
+ (x :% y) == (x2 :% y2) = x == x2 && y == y2
+ (x :% y) /= (x2 :% y2) = x /= x2 || y /= y2
+
+instance (Integral a) => Ord (Ratio a) where
+ (x1:%y1) <= (x2:%y2) = x1 * y2 <= x2 * y1
+ (x1:%y1) < (x2:%y2) = x1 * y2 < x2 * y1
+ (x1:%y1) >= (x2:%y2) = x1 * y2 >= x2 * y1
+ (x1:%y1) > (x2:%y2) = x1 * y2 > x2 * y1
+ min x y | x <= y = x
+ min x y | otherwise = y
+ max x y | x >= y = x
+ max x y | otherwise = y
+ _tagCmp (x1:%y1) (x2:%y2)
+ = if x1y2 == x2y1 then _EQ else if x1y2 < x2y1 then _LT else _GT
+ where x1y2 = x1 * y2
+ x2y1 = x2 * y1
+
+instance (Integral a) => Num (Ratio a) where
+ (x1:%y1) + (x2:%y2) = reduce (x1*y2 + x2*y1) (y1*y2)
+ (x1:%y1) - (x2:%y2) = reduce (x1*y2 - x2*y1) (y1*y2)
+ (x1:%y1) * (x2:%y2) = reduce (x1 * x2) (y1 * y2)
+ negate (x:%y) = (-x) :% y
+ abs (x:%y) = abs x :% y
+ signum (x:%y) = signum x :% 1
+ fromInteger x = fromInteger x :% 1
+ fromInt x = fromInt x :% 1
+
+instance (Integral a) => Real (Ratio a) where
+ toRational (x:%y) = toInteger x :% toInteger y
+
+instance (Integral a) => Fractional (Ratio a) where
+ (x1:%y1) / (x2:%y2) = (x1*y2) % (y1*x2)
+ recip (x:%y) = if x < 0 then (-y) :% (-x) else y :% x
+ fromRational (x:%y) = fromInteger x :% fromInteger y
+
+instance (Integral a) => RealFrac (Ratio a) where
+ properFraction (x:%y) = (fromIntegral q, r:%y)
+ where (q,r) = quotRem x y
+
+ -- just call the versions in Core.hs
+ truncate x = _truncate x
+ round x = _round x
+ ceiling x = _ceiling x
+ floor x = _floor x
+
+instance (Integral a) => Enum (Ratio a) where
+ enumFrom = iterate ((+)1)
+ enumFromThen n m = iterate ((+)(m-n)) n
+ enumFromTo n m = takeWhile (<= m) (enumFrom n)
+ enumFromThenTo n m p = takeWhile (if m >= n then (<= p) else (>= p))
+ (enumFromThen n m)
+
+instance (Integral a) => Text (Ratio a) where
+ readsPrec p = readParen (p > prec)
+ (\r -> [(x%y,u) | (x,s) <- reads r,
+ ("%",t) <- lex s,
+ (y,u) <- reads t ])
+
+ showsPrec p (x:%y) = showParen (p > prec)
+ (shows x . showString " % " . shows y)
+
+{-# SPECIALIZE instance Eq (Ratio Integer) #-}
+{-# SPECIALIZE instance Ord (Ratio Integer) #-}
+{-# SPECIALIZE instance Num (Ratio Integer) #-}
+{-# SPECIALIZE instance Real (Ratio Integer) #-}
+{-# SPECIALIZE instance Fractional (Ratio Integer) #-}
+{-# SPECIALIZE instance RealFrac (Ratio Integer) #-}
+{-# SPECIALIZE instance Enum (Ratio Integer) #-}
+{-# SPECIALIZE instance Text (Ratio Integer) #-}
+
+{- ToDo: Ratio Int# ???
+#if defined(__UNBOXED_INSTANCES__)
+
+{-# SPECIALIZE instance Eq (Ratio Int#) #-}
+{-# SPECIALIZE instance Ord (Ratio Int#) #-}
+{-# SPECIALIZE instance Num (Ratio Int#) #-}
+{-# SPECIALIZE instance Real (Ratio Int#) #-}
+{-# SPECIALIZE instance Fractional (Ratio Int#) #-}
+{-# SPECIALIZE instance RealFrac (Ratio Int#) #-}
+{-# SPECIALIZE instance Enum (Ratio Int#) #-}
+{-# SPECIALIZE instance Text (Ratio Int#) #-}
+
+#endif
+-}
+
+-- approxRational, applied to two real fractional numbers x and epsilon,
+-- returns the simplest rational number within epsilon of x. A rational
+-- number n%d in reduced form is said to be simpler than another n'%d' if
+-- abs n <= abs n' && d <= d'. Any real interval contains a unique
+-- simplest rational; here, for simplicity, we assume a closed rational
+-- interval. If such an interval includes at least one whole number, then
+-- the simplest rational is the absolutely least whole number. Otherwise,
+-- the bounds are of the form q%1 + r%d and q%1 + r'%d', where abs r < d
+-- and abs r' < d', and the simplest rational is q%1 + the reciprocal of
+-- the simplest rational between d'%r' and d%r.
+
+--{-# GENERATE_SPECS approxRational a{Double#,Double} #-}
+{-# GENERATE_SPECS approxRational a{Double} #-}
+approxRational :: (RealFrac a) => a -> a -> Rational
+
+approxRational x eps = simplest (x-eps) (x+eps)
+ where simplest x y | y < x = simplest y x
+ | x == y = xr
+ | x > 0 = simplest' n d n' d'
+ | y < 0 = - simplest' (-n') d' (-n) d
+ | otherwise = 0 :% 1
+ where xr@(n:%d) = toRational x
+ (n':%d') = toRational y
+
+ simplest' n d n' d' -- assumes 0 < n%d < n'%d'
+ | r == 0 = q :% 1
+ | q /= q' = (q+1) :% 1
+ | otherwise = (q*n''+d'') :% n''
+ where (q,r) = quotRem n d
+ (q',r') = quotRem n' d'
+ (n'':%d'') = simplest' d' r' d r
diff --git a/ghc/lib/prelude/IRatio_mc.hi b/ghc/lib/prelude/IRatio_mc.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_mc.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio_mg.hi b/ghc/lib/prelude/IRatio_mg.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_mg.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio_mp.hi b/ghc/lib/prelude/IRatio_mp.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_mp.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio_mr.hi b/ghc/lib/prelude/IRatio_mr.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_mr.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio_mt.hi b/ghc/lib/prelude/IRatio_mt.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_mt.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio_p.hi b/ghc/lib/prelude/IRatio_p.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_p.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/IRatio_t.hi b/ghc/lib/prelude/IRatio_t.hi
new file mode 100644
index 0000000000..0017c60593
--- /dev/null
+++ b/ghc/lib/prelude/IRatio_t.hi
@@ -0,0 +1,83 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeRatio where
+import PreludeBuiltin(Int(..), Integer(..))
+import PreludeCore(Enum(..), Eq(..), Fractional(..), Integral(..), Num(..), Ord(..), Real(..), RealFrac(..), Text(..))
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+prec :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [7#] _N_ #-}
+reduce :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)ALLAAAAAAAA)" {_A_ 5 _U_ 2222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0.hi b/ghc/lib/prelude/ITup0.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0.hs b/ghc/lib/prelude/ITup0.hs
new file mode 100644
index 0000000000..32776c8d47
--- /dev/null
+++ b/ghc/lib/prelude/ITup0.hs
@@ -0,0 +1,43 @@
+module PreludeBuiltin where
+
+--- 0-tuple (trivial type "()" ) ---------------------------------
+
+import Cls
+import Core
+import IChar
+import IList
+import List ( (++), foldr )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+instance Eq () where
+ () == () = True
+ () /= () = False
+
+instance Ord () where
+ () <= () = True
+ () < () = False
+ () >= () = True
+ () > () = False
+ max () () = ()
+ min () () = ()
+ _tagCmp () () = _EQ
+
+instance Text () where
+ readsPrec p = readParen False
+ (\r -> [((),t) | ("(",s) <- lex r,
+ (")",t) <- lex s ] )
+ showsPrec p () = showString "()"
+
+instance Ix () where
+ range ((), ()) = [()]
+ index ((), ()) () = 0
+ inRange ((), ()) () = True
+
+instance Enum () where
+ enumFrom () = [()]
+ enumFromThen () () = [()]
+ enumFromTo () () = [()]
+ enumFromThenTo () () () = [()]
+
+-- ToDo: something for Binary
diff --git a/ghc/lib/prelude/ITup0_mc.hi b/ghc/lib/prelude/ITup0_mc.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_mc.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0_mg.hi b/ghc/lib/prelude/ITup0_mg.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_mg.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0_mp.hi b/ghc/lib/prelude/ITup0_mp.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_mp.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0_mr.hi b/ghc/lib/prelude/ITup0_mr.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_mr.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0_mt.hi b/ghc/lib/prelude/ITup0_mt.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_mt.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0_p.hi b/ghc/lib/prelude/ITup0_p.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_p.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup0_t.hi b/ghc/lib/prelude/ITup0_t.hi
new file mode 100644
index 0000000000..6a83051ad2
--- /dev/null
+++ b/ghc/lib/prelude/ITup0_t.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Enum(..), Eq(..), Ix(..), Ord(..), Text(..))
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2.hi b/ghc/lib/prelude/ITup2.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2.hs b/ghc/lib/prelude/ITup2.hs
new file mode 100644
index 0000000000..33dc89d7cb
--- /dev/null
+++ b/ghc/lib/prelude/ITup2.hs
@@ -0,0 +1,69 @@
+module PreludeBuiltin where
+
+--- 2-tuples ------------------------------------------
+
+import Cls
+import Core
+import IInt
+import IInteger
+import IList
+import List ( (++), foldr )
+import Prel ( (&&), (.) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+instance (Eq a, Eq b) => Eq (a, b) where
+ (a,b) == (c,d) = a == c && b == d
+
+instance (Ord a, Ord b) => Ord (a, b) where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+ _tagCmp (a1, b1) (a2, b2) = case (_tagCmp a1 a2) of
+ _LT -> _LT
+ _GT -> _GT
+ _EQ -> _tagCmp b1 b2
+
+instance (Ix a, Ix b) => Ix (a, b) where
+ range ((l1,l2),(u1,u2))
+ = [ (i1,i2) | i1 <- range (l1,u1), i2 <- range (l2,u2) ]
+
+ index ((l1,l2),(u1,u2)) (i1,i2)
+ = index (l1,u1) i1 * (index (l2,u2) u2 + 1){-rangeSize (l2,u2)-} + index (l2,u2) i2
+
+ inRange ((l1,l2),(u1,u2)) (i1,i2)
+ = inRange (l1,u1) i1 && inRange (l2,u2) i2
+
+instance (Text a, Text b) => Text (a, b) where
+ readsPrec p = readParen False
+ (\r -> [((x,y), w) | ("(",s) <- lex r,
+ (x,t) <- reads s,
+ (",",u) <- lex t,
+ (y,v) <- reads u,
+ (")",w) <- lex v ] )
+
+ showsPrec p (x,y) = showChar '(' . shows x . showString ", " .
+ shows y . showChar ')'
+
+{-# SPECIALIZE instance Eq (Int, Int) #-}
+{-# SPECIALIZE instance Ord (Int, Int) #-}
+{-# SPECIALIZE instance Ix (Int, Int) #-}
+{-# SPECIALIZE instance Text (Int, Int) #-}
+
+{-# SPECIALIZE instance Text (Integer, Integer) #-}
+
+{-# SPECIALIZE instance Eq (_PackedString, _PackedString) #-}
+{-# SPECIALIZE instance Ord (_PackedString, _PackedString) #-}
+
+#if defined(__UNBOXED_INSTANCES__)
+-- We generate SPECIALIZED instances for all combinations of unboxed pairs
+
+{-# GENERATE_SPECS instance a b :: Eq (a,b) #-}
+{-# GENERATE_SPECS instance a b :: Ord (a,b) #-}
+{-# GENERATE_SPECS instance a{Char#,Int#} b{Char#,Int#} :: Ix (a,b) #-}
+{-# GENERATE_SPECS instance a b :: Text (a,b) #-}
+
+#endif {-UNBOXED INSTANCES-}
diff --git a/ghc/lib/prelude/ITup2_mc.hi b/ghc/lib/prelude/ITup2_mc.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_mc.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2_mg.hi b/ghc/lib/prelude/ITup2_mg.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_mg.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2_mp.hi b/ghc/lib/prelude/ITup2_mp.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_mp.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2_mr.hi b/ghc/lib/prelude/ITup2_mr.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_mr.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2_mt.hi b/ghc/lib/prelude/ITup2_mt.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_mt.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2_p.hi b/ghc/lib/prelude/ITup2_p.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_p.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup2_t.hi b/ghc/lib/prelude/ITup2_t.hi
new file mode 100644
index 0000000000..b57179dbc8
--- /dev/null
+++ b/ghc/lib/prelude/ITup2_t.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+import PreludePS(_PackedString)
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3.hi b/ghc/lib/prelude/ITup3.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3.hs b/ghc/lib/prelude/ITup3.hs
new file mode 100644
index 0000000000..24e8f866ed
--- /dev/null
+++ b/ghc/lib/prelude/ITup3.hs
@@ -0,0 +1,91 @@
+module PreludeBuiltin where
+
+--- 3-tuples ------------------------------------------
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++), foldr )
+import Prel ( (&&), (.) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c) where
+ (a1,a2,a3) == (b1,b2,b3) = a1 == b1 && a2 == b2 && a3 == b3
+ aaa /= bbb = if (aaa == bbb) then False else True
+
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c) where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (a1, b1, c1) (a2, b2, c2)
+ = case (_tagCmp a1 a2) of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> case _tagCmp b1 b2 of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> _tagCmp c1 c2
+ }
+ }
+
+instance (Ix a1, Ix a2, Ix a3) => Ix (a1,a2,a3) where
+ range ((l1,l2,l3),(u1,u2,u3)) =
+ [(i1,i2,i3) | i1 <- range (l1,u1),
+ i2 <- range (l2,u2),
+ i3 <- range (l3,u3)]
+
+ index ((l1,l2,l3),(u1,u2,u3)) (i1,i2,i3) =
+ index (l3,u3) i3 + rangeSize (l3,u3) * (
+ index (l2,u2) i2 + rangeSize (l2,u2) * (
+ index (l1,u1) i1))
+ where
+ rangeSize (l,u) = index (l,u) u + (1 :: Int)
+
+ inRange ((l1,l2,l3),(u1,u2,u3)) (i1,i2,i3) =
+ inRange (l1,u1) i1 && inRange (l2,u2) i2 &&
+ inRange (l3,u3) i3
+
+-- ToDo: something for Binary
+
+instance (Text a, Text b, Text c) => Text (a, b, c) where
+ readsPrec p = readParen False
+ (\a -> [((x,y,z), h) | ("(",b) <- lex a,
+ (x,c) <- reads b,
+ (",",d) <- lex c,
+ (y,e) <- reads d,
+ (",",f) <- lex e,
+ (z,g) <- reads f,
+ (")",h) <- lex g ] )
+
+ showsPrec p (x,y,z) = showChar '(' . shows x . showString ", " .
+ shows y . showString ", " .
+ shows z . showChar ')'
+
+#if defined(__UNBOXED_INSTANCES__)
+
+-- We only create SPECIALIZED instances unboxed tuples
+-- which have all the same unboxed component
+
+-- {-# SPECIALIZE instance Eq (Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Ord (Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Ix (Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Text (Char#,Char#,Char#) #-}
+
+-- {-# SPECIALIZE instance Eq (Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Ord (Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Ix (Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Text (Int#,Int#,Int#) #-}
+
+-- {-# SPECIALIZE instance Eq (Double#,Double#,Double#) #-}
+-- {-# SPECIALIZE instance Ord (Double#,Double#,Double#) #-}
+-- {-# SPECIALIZE instance Text (Double#,Double#,Double#) #-}
+
+#endif
diff --git a/ghc/lib/prelude/ITup3_mc.hi b/ghc/lib/prelude/ITup3_mc.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_mc.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3_mg.hi b/ghc/lib/prelude/ITup3_mg.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_mg.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3_mp.hi b/ghc/lib/prelude/ITup3_mp.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_mp.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3_mr.hi b/ghc/lib/prelude/ITup3_mr.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_mr.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3_mt.hi b/ghc/lib/prelude/ITup3_mt.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_mt.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3_p.hi b/ghc/lib/prelude/ITup3_p.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_p.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup3_t.hi b/ghc/lib/prelude/ITup3_t.hi
new file mode 100644
index 0000000000..2a3e9f8bcb
--- /dev/null
+++ b/ghc/lib/prelude/ITup3_t.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4.hi b/ghc/lib/prelude/ITup4.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4.hs b/ghc/lib/prelude/ITup4.hs
new file mode 100644
index 0000000000..b58cdf7f23
--- /dev/null
+++ b/ghc/lib/prelude/ITup4.hs
@@ -0,0 +1,100 @@
+module PreludeBuiltin where
+
+--- 4-tuples ------------------------------------------
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++), foldr )
+import Prel ( (&&), (.) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a,b,c,d) where
+ (a1,a2,a3,a4) == (b1,b2,b3,b4) = a1 == b1 && a2 == b2 && a3 == b3 && a4 == b4
+ aaaa /= bbbb = if (aaaa == bbbb) then False else True
+
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a,b,c,d) where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (a1, b1, c1, d1) (a2, b2, c2, d2)
+ = case (_tagCmp a1 a2) of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> case _tagCmp b1 b2 of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> case _tagCmp c1 c2 of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> _tagCmp d1 d2
+ }
+ }
+ }
+
+instance (Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1,a2,a3,a4) where
+ range ((l1,l2,l3,l4),(u1,u2,u3,u4)) =
+ [(i1,i2,i3,i4) | i1 <- range (l1,u1),
+ i2 <- range (l2,u2),
+ i3 <- range (l3,u3),
+ i4 <- range (l4,u4)]
+
+ index ((l1,l2,l3,l4),(u1,u2,u3,u4)) (i1,i2,i3,i4) =
+ index (l4,u4) i4 + rangeSize (l4,u4) * (
+ index (l3,u3) i3 + rangeSize (l3,u3) * (
+ index (l2,u2) i2 + rangeSize (l2,u2) * (
+ index (l1,u1) i1)))
+ where
+ rangeSize (l,u) = index (l,u) u + (1 :: Int)
+
+ inRange ((l1,l2,l3,l4),(u1,u2,u3,u4)) (i1,i2,i3,i4) =
+ inRange (l1,u1) i1 && inRange (l2,u2) i2 &&
+ inRange (l3,u3) i3 && inRange (l4,u4) i4
+
+-- ToDo: something for Binary
+
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d) where
+ readsPrec p = readParen False
+ (\a -> [((w,x,y,z), j) | ("(",b) <- lex a,
+ (w,c) <- reads b,
+ (",",d) <- lex c,
+ (x,e) <- reads d,
+ (",",f) <- lex e,
+ (y,g) <- reads f,
+ (",",h) <- lex g,
+ (z,i) <- reads h,
+ (")",j) <- lex i ] )
+
+ showsPrec p (w,x,y,z) = showChar '(' . shows w . showString ", " .
+ shows x . showString ", " .
+ shows y . showString ", " .
+ shows z . showChar ')'
+
+#if defined(__UNBOXED_INSTANCES__)
+
+-- We only create SPECIALIZED instances unboxed tuples
+-- which have all the same unboxed component
+
+-- {-# SPECIALIZE instance Eq (Char#,Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Ord (Char#,Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Ix (Char#,Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Text (Char#,Char#,Char#,Char#) #-}
+
+-- {-# SPECIALIZE instance Eq (Int#,Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Ord (Int#,Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Ix (Int#,Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Text (Int#,Int#,Int#,Int#) #-}
+
+-- {-# SPECIALIZE instance Eq (Double#,Double#,Double#,Double#) #-}
+-- {-# SPECIALIZE instance Ord (Double#,Double#,Double#,Double#) #-}
+-- {-# SPECIALIZE instance Text (Double#,Double#,Double#,Double#) #-}
+
+#endif
diff --git a/ghc/lib/prelude/ITup4_mc.hi b/ghc/lib/prelude/ITup4_mc.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_mc.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4_mg.hi b/ghc/lib/prelude/ITup4_mg.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_mg.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4_mp.hi b/ghc/lib/prelude/ITup4_mp.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_mp.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4_mr.hi b/ghc/lib/prelude/ITup4_mr.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_mr.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4_mt.hi b/ghc/lib/prelude/ITup4_mt.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_mt.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4_p.hi b/ghc/lib/prelude/ITup4_p.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_p.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup4_t.hi b/ghc/lib/prelude/ITup4_t.hi
new file mode 100644
index 0000000000..3e000ca5e7
--- /dev/null
+++ b/ghc/lib/prelude/ITup4_t.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5.hi b/ghc/lib/prelude/ITup5.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5.hs b/ghc/lib/prelude/ITup5.hs
new file mode 100644
index 0000000000..223e297f83
--- /dev/null
+++ b/ghc/lib/prelude/ITup5.hs
@@ -0,0 +1,109 @@
+module PreludeBuiltin where
+
+--- 5-tuples ------------------------------------------
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++), foldr )
+import Prel ( (&&), (.) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a,b,c,d,e) where
+ (a1,a2,a3,a4,a5) == (b1,b2,b3,b4,b5) = a1 == b1 && a2 == b2 && a3 == b3 && a4 == b4 && a5 == b5
+ aaaaa /= bbbbb = if (aaaaa == bbbbb) then False else True
+
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a,b,c,d,e) where
+ a < b = case _tagCmp a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a <= b = case _tagCmp a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a >= b = case _tagCmp a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmp a b of { _LT -> False; _EQ -> False; _GT -> True }
+
+ max a b = case _tagCmp a b of { _LT -> b; _EQ -> a; _GT -> a }
+ min a b = case _tagCmp a b of { _LT -> a; _EQ -> a; _GT -> b }
+
+ _tagCmp (a1, b1, c1, d1, e1) (a2, b2, c2, d2, e2)
+ = case (_tagCmp a1 a2) of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> case _tagCmp b1 b2 of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> case _tagCmp c1 c2 of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> case _tagCmp d1 d2 of {
+ _LT -> _LT;
+ _GT -> _GT;
+ _EQ -> _tagCmp e1 e2
+ }
+ }
+ }
+ }
+
+instance (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1,a2,a3,a4,a5) where
+ range ((l1,l2,l3,l4,l5),(u1,u2,u3,u4,u5)) =
+ [(i1,i2,i3,i4,i5) | i1 <- range (l1,u1),
+ i2 <- range (l2,u2),
+ i3 <- range (l3,u3),
+ i4 <- range (l4,u4),
+ i5 <- range (l5,u5)]
+
+ index ((l1,l2,l3,l4,l5),(u1,u2,u3,u4,u5)) (i1,i2,i3,i4,i5) =
+ index (l5,u5) i5 + rangeSize (l5,u5) * (
+ index (l4,u4) i4 + rangeSize (l4,u4) * (
+ index (l3,u3) i3 + rangeSize (l3,u3) * (
+ index (l2,u2) i2 + rangeSize (l2,u2) * (
+ index (l1,u1) i1))))
+ where
+ rangeSize (l,u) = index (l,u) u + (1 :: Int)
+
+ inRange ((l1,l2,l3,l4,l5),(u1,u2,u3,u4,u5)) (i1,i2,i3,i4,i5) =
+ inRange (l1,u1) i1 && inRange (l2,u2) i2 &&
+ inRange (l3,u3) i3 && inRange (l4,u4) i4 && inRange (l5,u5) i5
+
+-- ToDo: something for Binary
+
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e) where
+ readsPrec p = readParen False
+ (\a -> [((w,x,y,z,v), l) | ("(",b) <- lex a,
+ (w,c) <- reads b,
+ (",",d) <- lex c,
+ (x,e) <- reads d,
+ (",",f) <- lex e,
+ (y,g) <- reads f,
+ (",",h) <- lex g,
+ (z,i) <- reads h,
+ (",",j) <- lex i,
+ (v,k) <- reads j,
+ (")",l) <- lex k ] )
+
+ showsPrec p (v,w,x,y,z) = showChar '(' . shows v . showString ", " .
+ shows w . showString ", " .
+ shows x . showString ", " .
+ shows y . showString ", " .
+ shows z . showChar ')'
+
+#if defined(__UNBOXED_INSTANCES__)
+
+-- We only create SPECIALIZED instances unboxed tuples
+-- which have all the same unboxed component
+
+-- {-# SPECIALIZE instance Eq (Char#,Char#,Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Ord (Char#,Char#,Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Ix (Char#,Char#,Char#,Char#,Char#) #-}
+-- {-# SPECIALIZE instance Text (Char#,Char#,Char#,Char#,Char#) #-}
+
+-- {-# SPECIALIZE instance Eq (Int#,Int#,Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Ord (Int#,Int#,Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Ix (Int#,Int#,Int#,Int#,Int#) #-}
+-- {-# SPECIALIZE instance Text (Int#,Int#,Int#,Int#,Int#) #-}
+
+-- {-# SPECIALIZE instance Eq (Double#,Double#,Double#,Double#,Double#) #-}
+-- {-# SPECIALIZE instance Ord (Double#,Double#,Double#,Double#,Double#) #-}
+-- {-# SPECIALIZE instance Text (Double#,Double#,Double#,Double#,Double#) #-}
+
+#endif
diff --git a/ghc/lib/prelude/ITup5_mc.hi b/ghc/lib/prelude/ITup5_mc.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_mc.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5_mg.hi b/ghc/lib/prelude/ITup5_mg.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_mg.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5_mp.hi b/ghc/lib/prelude/ITup5_mp.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_mp.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5_mr.hi b/ghc/lib/prelude/ITup5_mr.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_mr.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5_mt.hi b/ghc/lib/prelude/ITup5_mt.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_mt.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5_p.hi b/ghc/lib/prelude/ITup5_p.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_p.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/ITup5_t.hi b/ghc/lib/prelude/ITup5_t.hi
new file mode 100644
index 0000000000..7e0af2a821
--- /dev/null
+++ b/ghc/lib/prelude/ITup5_t.hi
@@ -0,0 +1,12 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeBuiltin where
+import PreludeCore(Eq(..), Ix(..), Ord(..), Text(..))
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List.hi b/ghc/lib/prelude/List.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List.hs b/ghc/lib/prelude/List.hs
new file mode 100644
index 0000000000..6059ee8b70
--- /dev/null
+++ b/ghc/lib/prelude/List.hs
@@ -0,0 +1,799 @@
+module PreludeList (
+ (!!), (++), (\\), all, and, any, break, concat, cycle, drop,
+ dropWhile, elem, filter, foldl, foldl1, foldr, foldr1, genericLength,
+ head, init, iterate, last, length, lines, map, maximum,
+ minimum, notElem, nub, null, or, partition, product, products,
+ repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt,
+ sum, sums, tail, take, takeWhile, transpose, unlines, unwords,
+ unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip,
+ zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4,
+ zipWith5, zipWith6, zipWith7,
+
+ _build
+ ) where
+
+import Cls
+import Core
+import IChar -- instances
+import IComplex
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import Prel ( otherwise, isSpace, (&&), (||), atan2, (.), flip, (^) )
+import PS ( _PackedString, _unpackPS )
+import Text
+import TyComplex
+
+--infixl 9 !!
+--infix 5 \\
+--infixr 5 ++
+--infix 4 `elem`, `notElem`
+
+-- head and tail extract the first element and remaining elements,
+-- respectively, of a list, which must be non-empty. last and init
+-- are the dual functions working from the end of a finite list,
+-- rather than the beginning.
+
+--{-# GENERATE_SPECS head a #-}
+head :: [a] -> a
+#ifndef USE_FOLDR_BUILD
+head (x:_) = x
+head [] = error "head{PreludeList}: head []\n"
+#else
+{-# INLINE head #-}
+head = foldr (\ x _ -> x)
+ (error "head{PreludeList}: head []\n")
+#endif
+
+--{-# GENERATE_SPECS last a #-}
+last :: [a] -> a
+last [] = error "last{PreludeList}: last []\n"
+last [x] = x
+last (_:xs) = last xs
+
+--{-# GENERATE_SPECS tail a #-}
+tail :: [a] -> [a]
+tail (_:xs) = xs
+tail [] = error "tail{PreludeList}: tail []\n"
+
+--{-# GENERATE_SPECS init a #-}
+init :: [a] -> [a]
+init [] = error "init{PreludeList}: init []\n"
+init [x] = []
+init (x:xs) = x : init xs
+
+-- null determines if a list is empty.
+--{-# GENERATE_SPECS null a #-}
+null :: [a] -> Bool
+#ifndef USE_FOLDR_BUILD
+null [] = True
+null (_:_) = False
+#else
+{-# INLINE null #-}
+null x = foldr (\ _ _ -> False) True x
+#endif
+
+-- list concatenation (right-associative)
+--{-# GENERATE_SPECS (++) a #-}
+(++) :: [a] -> [a] -> [a]
+
+#ifdef USE_REPORT_PRELUDE
+xs ++ ys = foldr (:) ys xs
+#else
+# ifndef USE_FOLDR_BUILD
+[] ++ ys = ys
+(x:xs) ++ ys = x : (xs ++ ys)
+# else
+--#ANDY?#{-# INLINE (++) #-}
+xs ++ ys = foldr (:) ys xs
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- list difference (non-associative). In the result of xs \\ ys,
+-- the first occurrence of each element of ys in turn (if any)
+-- has been removed from xs. Thus, (xs ++ ys) \\ xs == ys.
+--{-# GENERATE_SPECS (\\) a{+,Int} #-}
+(\\) :: (Eq a) => [a] -> [a] -> [a]
+(\\) xs ys = foldl del xs ys
+ where [] `del` _ = []
+ (x:xs) `del` y
+ | x == y = xs
+ | otherwise = x : xs `del` y
+
+-- length returns the length of a finite list as an Int; it is an instance
+-- of the more general genericLength, the result type of which may be
+-- any kind of number.
+
+--{-# GENERATE_SPECS genericLength a{~,Int#,Double#,Int} b #-}
+genericLength :: (Num a) => [b] -> a
+genericLength xs = foldl (\n _ -> n+1) 0 xs
+
+--{-# GENERATE_SPECS length a #-}
+length :: [a] -> Int
+#ifdef USE_REPORT_PRELUDE
+length = genericLength
+#else
+#if 1
+--#ANDY?## ifndef USE_FOLDR_BUILD
+-- stolen from HBC, then unboxified
+length l = len l 0#
+ where
+ len :: [a] -> Int# -> Int
+ len [] a# = I# a#
+ len (_:xs) a# = len xs (a# +# 1#)
+# else
+--#ANDY?#{-# INLINE length #-}
+length l = foldl (\ n _ -> n+I# 1#) (I# 0#) l
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- List index (subscript) operator, 0-origin
+
+{-# SPECIALIZE (!!) :: [b] -> Int -> b, [b] -> Integer -> b #-}
+--{-# GENERATE_SPECS (!!) a{~,Int#,Int,Integer} b #-}
+(!!) :: (Integral a) => [b] -> a -> b
+#ifdef USE_REPORT_PRELUDE
+(x:_) !! 0 = x
+(_:xs) !! (n+1) = xs !! n
+(_:_) !! _ = error "(!!){PreludeList}: negative index"
+[] !! (m+1) = error "(!!){PreludeList}: index too large"
+#else
+-- HBC version (stolen), then unboxified
+-- The semantics is not quite the same for error conditions
+-- in the more efficient version.
+-- (Not to mention if "n" won't fit in an Int :-)
+
+_ !! n | n < 0 = error "(!!){PreludeList}: negative index\n"
+xs !! n = sub xs (case (toInt n) of { I# n# -> n# })
+ where sub :: [a] -> Int# -> a
+ sub [] _ = error "(!!){PreludeList}: index too large\n"
+ sub (x:xs) n# = if n# ==# 0#
+ then x
+ else sub xs (n# `minusInt#` 1#)
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- map f xs applies f to each element of xs; i.e., map f xs == [f x | x <- xs].
+--{-# GENERATE_SPECS map a b #-}
+map :: (a -> b) -> [a] -> [b]
+#ifndef USE_FOLDR_BUILD
+map f [] = []
+map f (x:xs) = f x : map f xs
+#else
+{-# INLINE map #-}
+map f xs = _build (\ c n -> foldr (c.f) n xs)
+#endif /* USE_FOLDR_BUILD */
+
+-- filter, applied to a predicate and a list, returns the list of those
+-- elements that satisfy the predicate; i.e.,
+-- filter p xs == [x | x <- xs, p x].
+--{-# GENERATE_SPECS filter a #-}
+filter :: (a -> Bool) -> [a] -> [a]
+#ifdef USE_REPORT_PRELUDE
+filter p = foldr (\x xs -> if p x then x:xs else xs) []
+#else
+# ifndef USE_FOLDR_BUILD
+-- stolen from HBC
+filter p [] = []
+filter p (x:xs) = if p x then x:filter p xs else filter p xs
+# else
+{-# INLINE filter #-}
+filter f xs = _build (\ c n -> foldr (\ a b -> if f a then c a b else b) n xs)
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- partition takes a predicate and a list and returns a pair of lists:
+-- those elements of the argument list that do and do not satisfy the
+-- predicate, respectively; i.e.,
+-- partition p xs == (filter p xs, filter (not . p) xs).
+#ifdef USE_FOLDR_BUILD
+{-# INLINE partition #-}
+#endif
+--{-# GENERATE_SPECS partition a #-}
+partition :: (a -> Bool) -> [a] -> ([a],[a])
+partition p xs = foldr select ([],[]) xs
+ where select x (ts,fs) | p x = (x:ts,fs)
+ | otherwise = (ts,x:fs)
+
+-- foldl, applied to a binary operator, a starting value (typically the
+-- left-identity of the operator), and a list, reduces the list using
+-- the binary operator, from left to right:
+-- foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn
+-- foldl1 is a variant that has no starting value argument, and thus must
+-- be applied to non-empty lists. scanl is similar to foldl, but returns
+-- a list of successive reduced values from the left:
+-- scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...]
+-- Note that last (scanl f z xs) == foldl f z xs.
+-- scanl1 is similar, again without the starting element:
+-- scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]
+
+--{-# GENERATE_SPECS foldl1 a #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+foldl1 f (x:xs) = foldl f x xs
+foldl1 _ [] = error "foldl1{PreludeList}: empty list\n"
+
+--{-# GENERATE_SPECS scanl a b#-}
+scanl :: (a -> b -> a) -> a -> [b] -> [a]
+scanl f q xs = q : (case xs of
+ [] -> []
+ x:xs -> scanl f (f q x) xs)
+
+--{-# GENERATE_SPECS scanl1 a #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+scanl1 f (x:xs) = scanl f x xs
+scanl1 _ [] = error "scanl1{PreludeList}: empty list\n"
+
+-- foldr, foldr1, scanr, and scanr1 are the right-to-left duals of the
+-- above functions.
+
+--{-# GENERATE_SPECS foldr1 a #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+foldr1 f [x] = x
+foldr1 f (x:xs) = f x (foldr1 f xs)
+foldr1 _ [] = error "foldr1{PreludeList}: empty list\n"
+
+--{-# GENERATE_SPECS scanr a b #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+scanr f q0 [] = [q0]
+scanr f q0 (x:xs) = f x q : qs
+ where qs@(q:_) = scanr f q0 xs
+
+--{-# GENERATE_SPECS scanr1 a #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+scanr1 f [x] = [x]
+scanr1 f (x:xs) = f x q : qs
+ where qs@(q:_) = scanr1 f xs
+scanr1 _ [] = error "scanr1{PreludeList}: empty list\n"
+
+-- iterate f x returns an infinite list of repeated applications of f to x:
+-- iterate f x == [x, f x, f (f x), ...]
+--{-# GENERATE_SPECS iterate a #-}
+iterate :: (a -> a) -> a -> [a]
+#ifndef USE_FOLDR_BUILD
+iterate f x = x : iterate f (f x)
+#else
+{-# INLINE iterate #-}
+iterate f x = _build (\ c n ->
+ let
+ _iterate f x = x `c` _iterate f (f x)
+ in
+ _iterate f x)
+#endif /* USE_FOLDR_BUILD */
+
+
+-- repeat x is an infinite list, with x the value of every element.
+--{-# GENERATE_SPECS repeat a #-}
+repeat :: a -> [a]
+#ifndef USE_FOLDR_BUILD
+repeat x = xs where xs = x:xs
+#else
+{-# INLINE repeat #-}
+repeat x = _build (\ c n ->
+ let
+ xs = x `c` xs
+ in
+ xs)
+#endif /* USE_FOLDR_BUILD */
+
+-- cycle ties a finite list into a circular one, or equivalently,
+-- the infinite repetition of the original list. It is the identity
+-- on infinite lists.
+
+--{-# GENERATE_SPECS cycle a #-}
+cycle :: [a] -> [a]
+#ifndef USE_FOLDR_BUILD
+cycle xs = xs' where xs' = xs ++ xs'
+#else
+{-# INLINE cycle #-}
+cycle xs = _build (\ c n ->
+ let
+ fx = foldr c fx xs
+ in
+ fx)
+#endif /* USE_FOLDR_BUILD */
+
+-- take n, applied to a list xs, returns the prefix of xs of length n,
+-- or xs itself if n > length xs. drop n xs returns the suffix of xs
+-- after the first n elements, or [] if n > length xs. splitAt n xs
+-- is equivalent to (take n xs, drop n xs).
+
+#ifdef USE_REPORT_PRELUDE
+
+take :: (Integral a) => a -> [b] -> [b]
+take 0 _ = []
+take _ [] = []
+take (n+1) (x:xs) = x : take n xs
+
+drop :: (Integral a) => a -> [b] -> [b]
+drop 0 xs = xs
+drop _ [] = []
+drop (n+1) (_:xs) = drop n xs
+
+splitAt :: (Integral a) => a -> [b] -> ([b],[b])
+splitAt 0 xs = ([],xs)
+splitAt _ [] = ([],[])
+splitAt (n+1) (x:xs) = (x:xs',xs'') where (xs',xs'') = splitAt n xs
+
+#else /* hack away */
+
+-- ToDo: massive Patrick hack not included yet
+
+take :: (Integral a) => a -> [b] -> [b]
+drop :: (Integral a) => a -> [b] -> [b]
+splitAt :: (Integral a) => a -> [b] -> ([b], [b])
+
+{-# SPECIALIZE take :: Int -> [b] -> [b], Integer -> [b] -> [b] #-}
+{-# SPECIALIZE drop :: Int -> [b] -> [b], Integer -> [b] -> [b] #-}
+{-# SPECIALIZE splitAt :: Int -> [b] -> ([b], [b]), Integer -> [b] -> ([b], [b]) #-}
+
+take n xs = takeInt (toInt n) xs
+
+takeInt :: Int -> [b] -> [b]
+takeInt (I# n#) xs
+ | n# <# 0# = error "take{PreludeList}: negative index"
+ | otherwise = takeInt# n# xs
+ where
+ takeInt# :: Int# -> [a] -> [a]
+ takeInt# 0# _ = []
+ takeInt# _ [] = []
+ takeInt# m# (x:xs) = x : takeInt# (m# `minusInt#` 1#) xs
+
+{- NEW, from Kevin Hammond (kh)
+ ToDo: needs the < 0 checking
+
+take n | n >= 0 =
+ if n <= fromIntegral maxInt then take' 0 else take'' n
+ where
+ take' :: Int -> [a] -> [a]
+ take' _ [] = []
+ take' m _ | m == n' = []
+ take' m (x:xs) = x : take' (m+1) xs
+
+ take'' :: (Integral a) => a -> [b] -> [b]
+ tale'' 0 - = []
+ take'' _ [] = []
+ take'' n (x:xs) = x : take'' (n-1) xs
+
+ n' = fromIntegral n
+
+-- Test
+-- main = print (head (take (123456789123456789::Integer) [1..]))
+-}
+
+-- ToDo: NEW drop and splitAt, too (WDP)
+
+drop n xs = dropInt (toInt n) xs
+
+dropInt :: Int -> [b] -> [b]
+dropInt (I# n#) xs
+ | n# <# 0# = error "drop{PreludeList}: negative index"
+ | otherwise = dropInt# n# xs
+ where
+ dropInt# :: Int# -> [a] -> [a]
+ dropInt# 0# xs = xs
+ dropInt# _ [] = []
+ dropInt# m# (_:xs) = dropInt# (m# `minusInt#` 1#) xs
+
+splitAt n xs | n >= 0 = splitAtInt (toInt n) xs
+
+splitAtInt :: Int -> [b] -> ([b], [b])
+splitAtInt (I# n#) xs
+ | n# <# 0# = error "splitAt{PreludeList}: negative index"
+ | otherwise = splitAtInt# n# xs
+ where
+ splitAtInt# :: Int# -> [a] -> ([a], [a])
+ splitAtInt# 0# xs = ([], xs)
+ splitAtInt# _ [] = ([], [])
+ splitAtInt# m# (x:xs) = (x:xs', xs'')
+ where
+ (xs', xs'') = splitAtInt# (m# `minusInt#` 1#) xs
+
+#endif {- ! USE_REPORT_PRELUDE -}
+
+-- takeWhile, applied to a predicate p and a list xs, returns the longest
+-- prefix (possibly empty) of xs of elements that satisfy p. dropWhile p xs
+-- returns the remaining suffix. Span p xs is equivalent to
+-- (takeWhile p xs, dropWhile p xs), while break p uses the negation of p.
+
+--{-# GENERATE_SPECS takeWhile a #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+#ifndef USE_FOLDR_BUILD
+takeWhile p [] = []
+takeWhile p (x:xs)
+ | p x = x : takeWhile p xs
+ | otherwise = []
+#else
+{-# INLINE takeWhile #-}
+takeWhile p xs = _build (\ c n ->
+ let
+ fn x r = if p x
+ then x `c` r
+ else n
+ in
+ foldr fn n xs)
+#endif /* USE_FOLDR_BUILD */
+
+--{-# GENERATE_SPECS dropWhile a #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+dropWhile p [] = []
+dropWhile p xs@(x:xs')
+ | p x = dropWhile p xs'
+ | otherwise = xs
+
+--{-# GENERATE_SPECS span a #-}
+span :: (a -> Bool) -> [a] -> ([a],[a])
+span p [] = ([],[])
+span p xs@(x:xs')
+ | p x = let (ys,zs) = span p xs' in (x:ys,zs)
+ | otherwise = ([],xs)
+
+--{-# GENERATE_SPECS break a #-}
+break :: (a -> Bool) -> [a] -> ([a],[a])
+#ifdef USE_REPORT_PRELUDE
+break p = span (not . p)
+#else
+-- HBC version (stolen)
+break p [] = ([],[])
+break p xs@(x:xs')
+ | p x = ([],xs)
+ | otherwise = let (ys,zs) = break p xs' in (x:ys,zs)
+#endif
+
+-- lines breaks a string up into a list of strings at newline characters.
+-- The resulting strings do not contain newlines. Similary, words
+-- breaks a string up into a list of words, which were delimited by
+-- white space. unlines and unwords are the inverse operations.
+-- unlines joins lines with terminating newlines, and unwords joins
+-- words with separating spaces.
+
+lines :: String -> [String]
+lines "" = []
+lines s = let (l, s') = break (== '\n') s
+ in l : case s' of
+ [] -> []
+ (_:s'') -> lines s''
+
+words :: String -> [String]
+words s = case dropWhile isSpace s of
+ "" -> []
+ s' -> w : words s''
+ where (w, s'') = break isSpace s'
+
+unlines :: [String] -> String
+#ifdef USE_REPORT_PRELUDE
+unlines = concat . map (++ "\n")
+#else
+# ifndef USE_FOLDR_BUILD
+-- HBC version (stolen)
+-- here's a more efficient version
+unlines [] = []
+unlines (l:ls) = l ++ '\n' : unlines ls
+# else
+{-# INLINE unlines #-}
+unlines xs = foldr (\ l r -> l ++ '\n' : r) [] xs
+-- OLD
+-- unlines = concat . map (++ "\n")
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+unwords :: [String] -> String
+#ifdef USE_REPORT_PRELUDE
+unwords [] = ""
+unwords ws = foldr1 (\w s -> w ++ ' ':s) ws
+#else
+-- HBC version (stolen)
+-- here's a more efficient version
+unwords [] = ""
+unwords [w] = w
+unwords (w:ws) = w ++ ' ' : unwords ws
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- nub (meaning "essence") removes duplicate elements from its list argument.
+--{-# GENERATE_SPECS nub a{+,Int} #-}
+nub :: (Eq a) => [a] -> [a]
+#ifdef USE_REPORT_PRELUDE
+nub [] = []
+nub (x:xs) = x : nub (filter (/= x) xs)
+#else
+-- stolen from HBC
+nub l = nub' l []
+ where
+ nub' [] _ = []
+ nub' (x:xs) l = if x `elem` l then nub' xs l else x : nub' xs (x:l)
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- reverse xs returns the elements of xs in reverse order. xs must be finite.
+--{-# GENERATE_SPECS reverse a #-}
+reverse :: [a] -> [a]
+#ifdef USE_REPORT_PRELUDE
+reverse = foldl (flip (:)) []
+#else
+# ifndef USE_FOLDR_BUILD
+reverse l = rev l []
+ where
+ rev [] a = a
+ rev (x:xs) a = rev xs (x:a)
+# else
+{-# INLINE reverse #-}
+reverse xs = _build (\ c n -> foldl (flip c) n xs)
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- and returns the conjunction of a Boolean list. For the result to be
+-- True, the list must be finite; False, however, results from a False
+-- value at a finite index of a finite or infinite list. or is the
+-- disjunctive dual of and.
+and, or :: [Bool] -> Bool
+#ifdef USE_REPORT_PRELUDE
+and = foldr (&&) True
+or = foldr (||) False
+#else
+# ifndef USE_FOLDR_BUILD
+and [] = True
+and (x:xs) = x && and xs
+or [] = False
+or (x:xs) = x || or xs
+# else
+{-# INLINE and #-}
+{-# INLINE or #-}
+and = foldr (&&) True
+or = foldr (||) False
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- Applied to a predicate and a list, any determines if any element
+-- of the list satisfies the predicate. Similarly, for all.
+--{-# GENERATE_SPECS any a #-}
+any :: (a -> Bool) -> [a] -> Bool
+--{-# GENERATE_SPECS all a #-}
+all :: (a -> Bool) -> [a] -> Bool
+#ifdef USE_REPORT_PRELUDE
+any p = or . map p
+all p = and . map p
+#else
+# ifndef USE_FOLDR_BUILD
+any p [] = False
+any p (x:xs) = p x || any p xs
+all p [] = True
+all p (x:xs) = p x && all p xs
+# else
+{-# INLINE any #-}
+{-# INLINE all #-}
+-- We expand these out, so as the non-deforested versions
+-- that use the f/b prelude can get a fair run for comparisons.
+any p xs = foldr (\ x r -> p x || r) False xs
+all p xs = foldr (\ x r -> p x && r) True xs
+# endif
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- elem is the list membership predicate, usually written in infix form,
+-- e.g., x `elem` xs. notElem is the negation.
+--{-# GENERATE_SPECS elem a{+,Int,Char,String} #-}
+elem :: (Eq a) => a -> [a] -> Bool
+--{-# GENERATE_SPECS notElem a{+,Int,Char,String} #-}
+notElem :: (Eq a) => a -> [a] -> Bool
+
+{-# SPECIALIZE elem :: Int -> [Int] -> Bool, Char -> [Char] -> Bool, String -> [String] -> Bool #-}
+{-# SPECIALIZE notElem :: Int -> [Int] -> Bool, Char -> [Char] -> Bool, String -> [String] -> Bool #-}
+
+#ifdef USE_REPORT_PRELUDE
+elem = any . (==)
+notElem = all . (/=)
+#else
+
+# ifndef USE_FOLDR_BUILD
+elem _ [] = False
+elem x (y:ys) = x==y || elem x ys
+
+notElem x [] = True
+notElem x (y:ys)= x /= y && notElem x ys
+
+# else
+{-# INLINE elem #-}
+{-# INLINE notElem #-}
+-- We are prepared to lose the partial application to equality,
+-- ie (x ==), and replace it with (\ y -> x == y)
+elem x ys = any (\ y -> x == y) ys
+notElem x ys = all (\ y -> x /= y) ys
+# endif /* USE_FOLDR_BUILD */
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- sum and product compute the sum or product of a finite list of numbers.
+{-# SPECIALIZE sum :: [Int] -> Int, [Integer] -> Integer, [Double] -> Double, [Complex Double] -> Complex Double #-}
+--{-# GENERATE_SPECS sum a{Int#,Double#,Int,Integer,Double} #-}
+sum :: (Num a) => [a] -> a
+{-# SPECIALIZE product :: [Int] -> Int, [Integer] -> Integer, [Double] -> Double #-}
+--{-# GENERATE_SPECS product a{Int#,Double#,Int,Integer,Double} #-}
+product :: (Num a) => [a] -> a
+
+#ifdef USE_REPORT_PRELUDE
+sum = foldl (+) 0
+product = foldl (*) 1
+#else
+
+# ifndef USE_FOLDR_BUILD
+sum l = sum' l 0
+ where
+ sum' [] a = a
+ sum' (x:xs) a = sum' xs (a+x)
+product l = prod l 1
+ where
+ prod [] a = a
+ prod (x:xs) a = prod xs (a*x)
+# else
+{-# INLINE sum #-}
+{-# INLINE product #-}
+sum xs = foldl (+) lit0 xs
+ where lit0 = 0
+product xs = foldl (*) lit1 xs
+ where lit1 = 1
+# endif
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- sums and products give a list of running sums or products from
+-- a list of numbers. For example, sums [1,2,3] == [0,1,3,6].
+--{-# GENERATE_SPECS sums a{Int#,Double#,Int,Integer,Double} #-}
+sums :: (Num a) => [a] -> [a]
+sums xs = scanl (+) 0 xs
+--{-# GENERATE_SPECS products a{Int#,Double#,Int,Integer,Double} #-}
+products :: (Num a) => [a] -> [a]
+products xs = scanl (*) 1 xs
+
+-- maximum and minimum return the maximum or minimum value from a list,
+-- which must be non-empty, finite, and of an ordered type.
+--{-# GENERATE_SPECS maximum a{+,Int,Integer,Double} #-}
+maximum :: (Ord a) => [a] -> a
+--{-# GENERATE_SPECS minimum a{+,Int,Integer,Double} #-}
+minimum :: (Ord a) => [a] -> a
+#ifdef USE_REPORT_PRELUDE
+maximum = foldl1 max
+minimum = foldl1 min
+#else
+maximum [x] = x
+maximum (x:xs) = max x (maximum xs)
+minimum [x] = x
+minimum (x:xs) = min x (minimum xs)
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- concat, applied to a list of lists, returns their flattened concatenation.
+--{-# GENERATE_SPECS concat a #-}
+concat :: [[a]] -> [a]
+#ifdef USE_REPORT_PRELUDE
+concat = foldr (++) []
+#else
+# ifndef USE_FOLDR_BUILD
+-- HBC version (stolen)
+concat [] = []
+concat ([]:xss) = concat xss -- for better stack behaiour!
+concat ([x]:xss) = x : concat xss -- this should help too ???
+concat (xs:xss) = xs ++ concat xss
+# else
+{-# INLINE concat #-}
+concat xs = _build (\ c n -> foldr (\ x y -> foldr c y x) n xs)
+# endif
+#endif /* ! USE_REPORT_PRELUDE */
+
+-- transpose, applied to a list of lists, returns that list with the
+-- "rows" and "columns" interchanged. The input need not be rectangular
+-- (a list of equal-length lists) to be completely transposable, but can
+-- be "triangular": Each successive component list must be not longer
+-- than the previous one; any elements outside of the "triangular"
+-- transposable region are lost. The input can be infinite in either
+-- dimension or both.
+--{-# GENERATE_SPECS transpose a #-}
+transpose :: [[a]] -> [[a]]
+transpose xs = foldr
+ (\xs xss -> zipWith (:) xs (xss ++ repeat []))
+ [] xs
+
+-- zip takes two lists and returns a list of corresponding pairs. If one
+-- input list is short, excess elements of the longer list are discarded.
+-- zip3 takes three lists and returns a list of triples, etc. Versions
+-- of zip producing up to septuplets are defined here.
+
+#ifdef USE_FOLDR_BUILD
+{-# INLINE zip #-}
+#endif
+--{-# GENERATE_SPECS zip a b #-}
+zip :: [a] -> [b] -> [(a,b)]
+zip as bs = zipWith (\a b -> (a,b)) as bs
+
+zip3 :: [a] -> [b] -> [c] -> [(a,b,c)]
+zip3 as bs cs = zipWith3 (\a b c -> (a,b,c)) as bs cs
+
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a,b,c,d)]
+zip4 as bs cs ds = zipWith4 (\a b c d -> (a,b,c,d)) as bs cs ds
+
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a,b,c,d,e)]
+zip5 as bs cs ds es = zipWith5 (\a b c d e -> (a,b,c,d,e)) as bs cs ds es
+
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ -> [(a,b,c,d,e,f)]
+zip6 as bs cs ds es fs = zipWith6 (\a b c d e f -> (a,b,c,d,e,f)) as bs cs ds es fs
+
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ -> [(a,b,c,d,e,f,g)]
+zip7 as bs cs ds es fs gs = zipWith7 (\a b c d e f g -> (a,b,c,d,e,f,g)) as bs cs ds es fs gs
+
+-- The zipWith family generalises the zip family by zipping with the
+-- function given as the first argument, instead of a tupling function.
+-- For example, zipWith (+) is applied to two lists to produce the list
+-- of corresponding sums.
+
+--{-# GENERATE_SPECS zipWith a b c #-}
+zipWith :: (a->b->c) -> [a]->[b]->[c]
+#ifndef USE_FOLDR_BUILD
+zipWith z (a:as) (b:bs) = z a b : zipWith z as bs
+zipWith _ _ _ = []
+#else
+{-# INLINE zipWith #-}
+zipWith z xs ys = _build (\ c n ->
+ let
+ h (a:as) (b:bs) = z a b `c` h as bs
+ h _ _ = n
+ in
+ h xs ys)
+#endif
+
+
+
+zipWith3 :: (a->b->c->d) -> [a]->[b]->[c]->[d]
+zipWith3 z (a:as) (b:bs) (c:cs)
+ = z a b c : zipWith3 z as bs cs
+zipWith3 _ _ _ _ = []
+
+zipWith4 :: (a->b->c->d->e) -> [a]->[b]->[c]->[d]->[e]
+zipWith4 z (a:as) (b:bs) (c:cs) (d:ds)
+ = z a b c d : zipWith4 z as bs cs ds
+zipWith4 _ _ _ _ _ = []
+
+zipWith5 :: (a->b->c->d->e->f)
+ -> [a]->[b]->[c]->[d]->[e]->[f]
+zipWith5 z (a:as) (b:bs) (c:cs) (d:ds) (e:es)
+ = z a b c d e : zipWith5 z as bs cs ds es
+zipWith5 _ _ _ _ _ _ = []
+
+zipWith6 :: (a->b->c->d->e->f->g)
+ -> [a]->[b]->[c]->[d]->[e]->[f]->[g]
+zipWith6 z (a:as) (b:bs) (c:cs) (d:ds) (e:es) (f:fs)
+ = z a b c d e f : zipWith6 z as bs cs ds es fs
+zipWith6 _ _ _ _ _ _ _ = []
+
+zipWith7 :: (a->b->c->d->e->f->g->h)
+ -> [a]->[b]->[c]->[d]->[e]->[f]->[g]->[h]
+zipWith7 z (a:as) (b:bs) (c:cs) (d:ds) (e:es) (f:fs) (g:gs)
+ = z a b c d e f g : zipWith7 z as bs cs ds es fs gs
+zipWith7 _ _ _ _ _ _ _ _ = []
+
+
+-- unzip transforms a list of pairs into a pair of lists. As with zip,
+-- a family of such functions up to septuplets is provided.
+
+--{-# GENERATE_SPECS unzip a b #-}
+unzip :: [(a,b)] -> ([a],[b])
+unzip xs = foldr (\(a,b) ~(as,bs) -> (a:as,b:bs)) ([],[]) xs
+
+unzip3 :: [(a,b,c)] -> ([a],[b],[c])
+unzip3 xs = foldr (\(a,b,c) ~(as,bs,cs) -> (a:as,b:bs,c:cs))
+ ([],[],[]) xs
+
+unzip4 :: [(a,b,c,d)] -> ([a],[b],[c],[d])
+unzip4 xs = foldr (\(a,b,c,d) ~(as,bs,cs,ds) ->
+ (a:as,b:bs,c:cs,d:ds))
+ ([],[],[],[]) xs
+
+unzip5 :: [(a,b,c,d,e)] -> ([a],[b],[c],[d],[e])
+unzip5 xs = foldr (\(a,b,c,d,e) ~(as,bs,cs,ds,es) ->
+ (a:as,b:bs,c:cs,d:ds,e:es))
+ ([],[],[],[],[]) xs
+
+unzip6 :: [(a,b,c,d,e,f)] -> ([a],[b],[c],[d],[e],[f])
+unzip6 xs = foldr (\(a,b,c,d,e,f) ~(as,bs,cs,ds,es,fs) ->
+ (a:as,b:bs,c:cs,d:ds,e:es,f:fs))
+ ([],[],[],[],[],[]) xs
+
+unzip7 :: [(a,b,c,d,e,f,g)] -> ([a],[b],[c],[d],[e],[f],[g])
+unzip7 xs = foldr (\(a,b,c,d,e,f,g) ~(as,bs,cs,ds,es,fs,gs) ->
+ (a:as,b:bs,c:cs,d:ds,e:es,f:fs,g:gs))
+ ([],[],[],[],[],[],[]) xs
diff --git a/ghc/lib/prelude/List_mc.hi b/ghc/lib/prelude/List_mc.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_mc.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List_mg.hi b/ghc/lib/prelude/List_mg.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_mg.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List_mp.hi b/ghc/lib/prelude/List_mp.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_mp.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List_mr.hi b/ghc/lib/prelude/List_mr.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_mr.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List_mt.hi b/ghc/lib/prelude/List_mt.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_mt.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List_p.hi b/ghc/lib/prelude/List_p.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_p.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/List_t.hi b/ghc/lib/prelude/List_t.hi
new file mode 100644
index 0000000000..d478f1dd2d
--- /dev/null
+++ b/ghc/lib/prelude/List_t.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeList where
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7)
+import PreludeCore(Bool(..), Eq(..), Integral(..), Num(..), Ord(..))
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Merge.hi b/ghc/lib/prelude/Merge.hi
new file mode 100644
index 0000000000..66f02681a3
--- /dev/null
+++ b/ghc/lib/prelude/Merge.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Merge where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Merge.lhs b/ghc/lib/prelude/Merge.lhs
new file mode 100644
index 0000000000..be38c890c5
--- /dev/null
+++ b/ghc/lib/prelude/Merge.lhs
@@ -0,0 +1,117 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[Merge]{Mergeing streams}
+
+Avoiding the loss of ref. transparency by attaching the merge to the
+IO monad.
+
+\begin{code}
+module Merge
+
+ (
+ mergeIO, --:: [a] -> [a] -> IO [a]
+ nmergeIO --:: [[a]] -> IO [a]
+ ) where
+
+import Semaphore
+
+import PreludeGlaST
+import Concurrent ( forkIO )
+import PreludePrimIO ( newEmptyMVar, newMVar, putMVar,
+ readMVar, takeMVar, _MVar
+ )
+\end{code}
+
+\begin{code}
+
+max_buff_size = 1
+
+mergeIO :: [a] -> [a] -> IO [a]
+nmergeIO :: [[a]] -> IO [a]
+
+#ifndef __CONCURRENT_HASKELL__
+
+mergeIO _ _ = return []
+nmergeIO _ = return []
+
+#else
+
+mergeIO ls rs
+ = newEmptyMVar >>= \ tail_node ->
+ newMVar tail_node >>= \ tail_list ->
+ newQSem max_buff_size >>= \ e ->
+ newMVar 2 >>= \ branches_running ->
+ let
+ buff = (tail_list,e)
+ in
+ forkIO (suckIO branches_running buff ls) >>
+ forkIO (suckIO branches_running buff rs) >>
+ takeMVar tail_node >>= \ val ->
+ signalQSem e >>
+ return val
+
+type Buffer a
+ = (_MVar (_MVar [a]), QSem)
+
+suckIO :: _MVar Int -> Buffer a -> [a] -> IO ()
+
+suckIO branches_running buff@(tail_list,e) vs
+ = case vs of
+ [] -> takeMVar branches_running >>= \ val ->
+ if val == 1 then
+ takeMVar tail_list >>= \ node ->
+ putMVar node [] >>
+ putMVar tail_list node
+ else
+ putMVar branches_running (val-1)
+ (x:xs) ->
+ waitQSem e >>
+ takeMVar tail_list >>= \ node ->
+ newEmptyMVar >>= \ next_node ->
+ unsafeInterleavePrimIO (
+ takeMVar next_node `thenPrimIO` \ (Right x) ->
+ signalQSem e `seqPrimIO`
+ returnPrimIO x) `thenPrimIO` \ next_node_val ->
+ putMVar node (x:next_node_val) >>
+ putMVar tail_list next_node >>
+ suckIO branches_running buff xs
+
+nmergeIO lss
+ = let
+ len = length lss
+ in
+ newEmptyMVar >>= \ tail_node ->
+ newMVar tail_node >>= \ tail_list ->
+ newQSem max_buff_size >>= \ e ->
+ newMVar len >>= \ branches_running ->
+ let
+ buff = (tail_list,e)
+ in
+ mapIO (\ x -> forkIO (suckIO branches_running buff x)) lss >>
+ takeMVar tail_node >>= \ val ->
+ signalQSem e >>
+ return val
+ where
+ mapIO f xs = accumulate (map f xs)
+\end{code}
+
+So as to avoid creating a mutual recursive module dep. with @Concurrent.lhs@,
+the defn. of @forkIO@ is duplicated here:
+
+\begin{code}
+{- HAH! WDP 95/07
+
+forkIO :: PrimIO a -> PrimIO a
+forkIO action s
+ = let
+ (r, new_s) = action s
+ in
+ new_s `_fork_` (r, s)
+ where
+ _fork_ x y = case (fork# x) of { 0# -> parError#; _ -> y }
+-}
+
+#endif {- __CONCURRENT_HASKELL__ -}
+
+\end{code}
diff --git a/ghc/lib/prelude/Merge_mc.hi b/ghc/lib/prelude/Merge_mc.hi
new file mode 100644
index 0000000000..2a4326765f
--- /dev/null
+++ b/ghc/lib/prelude/Merge_mc.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Merge where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Merge_mg.hi b/ghc/lib/prelude/Merge_mg.hi
new file mode 100644
index 0000000000..66f02681a3
--- /dev/null
+++ b/ghc/lib/prelude/Merge_mg.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Merge where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Merge_mp.hi b/ghc/lib/prelude/Merge_mp.hi
new file mode 100644
index 0000000000..66f02681a3
--- /dev/null
+++ b/ghc/lib/prelude/Merge_mp.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Merge where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Merge_p.hi b/ghc/lib/prelude/Merge_p.hi
new file mode 100644
index 0000000000..66f02681a3
--- /dev/null
+++ b/ghc/lib/prelude/Merge_p.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Merge where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Merge_t.hi b/ghc/lib/prelude/Merge_t.hi
new file mode 100644
index 0000000000..66f02681a3
--- /dev/null
+++ b/ghc/lib/prelude/Merge_t.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Merge where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+mergeIO :: [a] -> [a] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 001 _N_ _S_ "AAU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nmergeIO :: [[a]] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AU(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS.hi b/ghc/lib/prelude/PS.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS.lhs b/ghc/lib/prelude/PS.lhs
new file mode 100644
index 0000000000..e5891b1075
--- /dev/null
+++ b/ghc/lib/prelude/PS.lhs
@@ -0,0 +1,681 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1993-1994
+%
+\section[PrelPS]{Packed strings}
+
+This sits on top of the sequencing/arrays world, notably @ByteArray#@s.
+
+Glorious hacking (all the hard work) by Bryan O'Sullivan.
+
+\begin{code}
+module PreludePS{-yes, a Prelude module!-} (
+ _packString,
+ _packStringST,
+ _packCString,
+ _packCBytes,
+ _packCBytesST,
+ _packStringForC,
+ _packBytesForC,
+ _packBytesForCST,
+ _nilPS,
+ _consPS,
+--OLD: packString#,
+--OLD: packToCString,
+ _byteArrayToPS,
+ _unsafeByteArrayToPS,
+ _psToByteArray,
+
+ _unpackPS,
+ unpackPS#,
+-- toCString,
+ _putPS,
+
+ _headPS,
+ _tailPS,
+ _nullPS,
+ _appendPS,
+ _lengthPS,
+ _indexPS,
+ _mapPS,
+ _filterPS,
+ _foldlPS,
+ _foldrPS,
+ _takePS,
+ _dropPS,
+ _splitAtPS,
+ _takeWhilePS,
+ _dropWhilePS,
+ _spanPS,
+ _breakPS,
+ _linesPS,
+ _wordsPS,
+ _reversePS,
+ _concatPS,
+
+ _substrPS,
+--??? _hashPS,
+
+ -- to make interface self-sufficient
+ _PackedString, -- abstract!
+ _FILE
+ ) where
+
+import PreludeGlaST
+import Stdio ( _FILE )
+import TyArray ( _ByteArray(..) )
+
+import Cls
+import Core
+import IChar
+import IList
+import IInt
+import Prel ( otherwise, (&&), (||), chr, ($), not, (.), isSpace, flip )
+import List ( length, (++), map, filter, foldl, foldr,
+ lines, words, reverse, null, foldr1
+ )
+import TyArray ( Array(..) )
+import Text
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{@_PackedString@ type declaration and interface (signatures)}
+%* *
+%************************************************************************
+
+The things we want:
+\begin{code}
+data _PackedString
+ = _PS ByteArray# -- the bytes
+ Int# -- length (*not* including NUL at the end)
+ Bool -- True <=> contains a NUL
+ | _CPS Addr# -- pointer to the (null-terminated) bytes in C land
+ Int# -- length, as per strlen
+ -- definitely doesn't contain a NUL
+
+_packString :: [Char] -> _PackedString
+_packStringST :: [Char] -> _ST s _PackedString
+_packCString :: _Addr -> _PackedString
+_packCBytes :: Int -> _Addr -> _PackedString
+_packCBytesST :: Int -> _Addr -> _ST s _PackedString
+_packStringForC :: [Char] -> ByteArray# -- calls injected by compiler
+_packBytesForC :: [Char] -> _ByteArray Int
+_packBytesForCST :: [Char] -> _ST s (_ByteArray Int)
+_nilPS :: _PackedString
+_consPS :: Char -> _PackedString -> _PackedString
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+_psToByteArray :: _PackedString -> _ByteArray Int
+
+--OLD: packString# :: [Char] -> ByteArray#
+--OLD: packToCString :: [Char] -> _ByteArray Int -- hmmm... weird name
+
+_unpackPS :: _PackedString -> [Char]
+unpackPS# :: Addr# -> [Char] -- calls injected by compiler
+--???toCString :: _PackedString -> ByteArray#
+_putPS :: _FILE -> _PackedString -> PrimIO () -- ToDo: more sensible type
+\end{code}
+
+\begin{code}
+_headPS :: _PackedString -> Char
+_tailPS :: _PackedString -> _PackedString
+_nullPS :: _PackedString -> Bool
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+_lengthPS :: _PackedString -> Int
+_indexPS :: _PackedString -> Int -> Char
+ -- 0-origin indexing into the string
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString {-or String?-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString {-or String?-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+_takePS :: Int -> _PackedString -> _PackedString
+_dropPS :: Int -> _PackedString -> _PackedString
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+_takeWhilePS:: (Char -> Bool) -> _PackedString -> _PackedString
+_dropWhilePS:: (Char -> Bool) -> _PackedString -> _PackedString
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+_linesPS :: _PackedString -> [_PackedString]
+_wordsPS :: _PackedString -> [_PackedString]
+_reversePS :: _PackedString -> _PackedString
+_concatPS :: [_PackedString] -> _PackedString
+
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ -- pluck out a piece of a _PS
+ -- start and end chars you want; both 0-origin-specified
+--??? _hashPS :: _PackedString -> Int -> Int
+ -- use the _PS to produce a hash value between 0 & m (inclusive)
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Constructor functions}
+%* *
+%************************************************************************
+
+Easy ones first. @_packString@ requires getting some heap-bytes and
+scribbling stuff into them.
+
+\begin{code}
+_packCString (A# a#) -- the easy one; we just believe the caller
+ = _CPS a# len
+ where
+ len = case (strlen# a#) of { I# x -> x }
+
+_nilPS = _CPS ""# 0#
+_consPS c cs = _packString (c : (_unpackPS cs)) -- ToDo:better
+
+_packStringForC str
+ = case (_packString str) of
+ _PS bytes _ _ -> bytes
+
+_packBytesForC str
+ = _psToByteArray (_packString str)
+
+_packBytesForCST str
+ = _packStringST str `thenStrictlyST` \ (_PS bytes n has_null) ->
+ --later? ASSERT(not has_null)
+ returnStrictlyST (_ByteArray (0, I# (n -# 1#)) bytes)
+
+_packString str = _runST (_packStringST str)
+
+_packStringST str
+ = let len = length str in
+ pack_me len str
+ where
+ pack_me :: Int -> [Char] -> _ST s _PackedString
+
+ pack_me len@(I# length#) str
+ = -- allocate an array that will hold the string
+ -- (not forgetting the NUL byte at the end)
+ new_ps_array (length# +# 1#) `thenStrictlyST` \ ch_array ->
+
+ -- fill in packed string from "str"
+ fill_in ch_array 0# str `seqStrictlyST`
+
+ -- freeze the puppy:
+ freeze_ps_array ch_array `thenStrictlyST` \ (_ByteArray _ frozen#) ->
+
+ let has_null = byteArrayHasNUL# frozen# length# in
+
+ returnStrictlyST (_PS frozen# length# has_null)
+ where
+ fill_in :: _MutableByteArray s Int -> Int# -> [Char] -> _ST s ()
+
+ fill_in arr_in# idx []
+ = write_ps_array arr_in# idx (chr# 0#) `seqStrictlyST`
+ returnStrictlyST ()
+
+ fill_in arr_in# idx (C# c : cs)
+ = write_ps_array arr_in# idx c `seqStrictlyST`
+ fill_in arr_in# (idx +# 1#) cs
+
+_packCBytes len addr = _runST (_packCBytesST len addr)
+
+_packCBytesST len@(I# length#) (A# addr)
+ = -- allocate an array that will hold the string
+ -- (not forgetting the NUL byte at the end)
+ new_ps_array (length# +# 1#) `thenStrictlyST` \ ch_array ->
+
+ -- fill in packed string from "addr"
+ fill_in ch_array 0# `seqStrictlyST`
+
+ -- freeze the puppy:
+ freeze_ps_array ch_array `thenStrictlyST` \ (_ByteArray _ frozen#) ->
+
+ let has_null = byteArrayHasNUL# frozen# length# in
+
+ returnStrictlyST (_PS frozen# length# has_null)
+ where
+ fill_in :: _MutableByteArray s Int -> Int# -> _ST s ()
+
+ fill_in arr_in# idx
+ | idx ==# length#
+ = write_ps_array arr_in# idx (chr# 0#) `seqStrictlyST`
+ returnStrictlyST ()
+ | otherwise
+ = case (indexCharOffAddr# addr idx) of { ch ->
+ write_ps_array arr_in# idx ch `seqStrictlyST`
+ fill_in arr_in# (idx +# 1#) }
+
+_byteArrayToPS (_ByteArray ixs@(_, ix_end) frozen#)
+ = let
+ n# = case (
+ if null (range ixs)
+ then 0
+ else ((index ixs ix_end) + 1)
+ ) of { I# x -> x }
+ in
+ _PS frozen# n# (byteArrayHasNUL# frozen# n#)
+
+_unsafeByteArrayToPS (_ByteArray _ frozen#) (I# n#)
+ = _PS frozen# n# (byteArrayHasNUL# frozen# n#)
+
+_psToByteArray (_PS bytes n has_null)
+ = _ByteArray (0, I# (n -# 1#)) bytes
+
+_psToByteArray (_CPS addr len#)
+ = let
+ len = I# len#
+ byte_array_form = _packCBytes len (A# addr)
+ in
+ case byte_array_form of { _PS bytes _ _ ->
+ _ByteArray (0, len - 1) bytes }
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Destructor functions (taking @_PackedStrings@ apart)}
+%* *
+%************************************************************************
+
+\begin{code}
+unpackPS# addr -- calls injected by compiler
+ = _unpackPS (_CPS addr len)
+ where
+ len = case (strlen# addr) of { I# x -> x }
+
+-- OK, but this code gets *hammered*:
+-- _unpackPS ps
+-- = [ _indexPS ps n | n <- [ 0::Int .. _lengthPS ps - 1 ] ]
+
+_unpackPS (_PS bytes len has_null)
+ = unpack 0#
+ where
+ unpack nh
+ | nh >=# len = []
+ | otherwise = C# ch : unpack (nh +# 1#)
+ where
+ ch = indexCharArray# bytes nh
+
+_unpackPS (_CPS addr len)
+ = unpack 0#
+ where
+ unpack nh
+ | ch `eqChar#` '\0'# = []
+ | otherwise = C# ch : unpack (nh +# 1#)
+ where
+ ch = indexCharOffAddr# addr nh
+\end{code}
+
+\begin{code}
+_putPS file ps@(_PS bytes len has_null)
+ | len ==# 0#
+ = returnPrimIO ()
+ | otherwise
+ = let
+ byte_array = _ByteArray (0, I# (len -# 1#)) bytes
+ in
+ _ccall_ fwrite byte_array (1::Int){-size-} (I# len) file
+ `thenPrimIO` \ (I# written) ->
+ if written ==# len then
+ returnPrimIO ()
+ else
+ error "_putPS: fwrite failed!\n"
+
+_putPS file (_CPS addr len)
+ | len ==# 0#
+ = returnPrimIO ()
+ | otherwise
+ = _ccall_ fputs (A# addr) file `thenPrimIO` \ (I# _){-force type-} ->
+ returnPrimIO ()
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{List-mimicking functions for @_PackedStrings@}
+%* *
+%************************************************************************
+
+First, the basic functions that do look into the representation;
+@indexPS@ is the most important one.
+\begin{code}
+_lengthPS ps = I# (lengthPS# ps)
+
+{-# INLINE lengthPS# #-}
+
+lengthPS# (_PS _ i _) = i
+lengthPS# (_CPS _ i) = i
+
+{-# INLINE strlen# #-}
+
+strlen# :: Addr# -> Int
+strlen# a
+ = unsafePerformPrimIO (
+ _ccall_ strlen (A# a) `thenPrimIO` \ len@(I# _) ->
+ returnPrimIO len
+ )
+
+byteArrayHasNUL# :: ByteArray# -> Int#{-length-} -> Bool
+
+byteArrayHasNUL# bs len
+ = unsafePerformPrimIO (
+ _ccall_ byteArrayHasNUL__ ba (I# len) `thenPrimIO` \ (I# res) ->
+ returnPrimIO (
+ if res ==# 0# then False else True
+ ))
+ where
+ ba = _ByteArray (0, I# (len -# 1#)) bs
+
+-----------------------
+_indexPS ps (I# n) = C# (indexPS# ps n)
+
+{-# INLINE indexPS# #-}
+
+indexPS# (_PS bs i _) n
+ = --ASSERT (n >=# 0# && n <# i) -- error checking: my eye! (WDP 94/10)
+ indexCharArray# bs n
+
+indexPS# (_CPS a _) n
+ = indexCharOffAddr# a n
+\end{code}
+
+Now, the rest of the functions can be defined without digging
+around in the representation.
+\begin{code}
+_headPS ps
+ | _nullPS ps = error "_headPS: head []"
+ | otherwise = C# (indexPS# ps 0#)
+
+_tailPS ps
+ | len <=# 0# = error "_tailPS: tail []"
+ | len ==# 1# = _nilPS
+ | otherwise = substrPS# ps 1# (len -# 1#)
+ where
+ len = lengthPS# ps
+
+_nullPS (_PS _ i _) = i ==# 0#
+_nullPS (_CPS _ i) = i ==# 0#
+
+-- ToDo: some non-lousy implementations...
+
+_appendPS xs ys
+ | _nullPS xs = ys
+ | _nullPS ys = xs
+ | otherwise = _packString (_unpackPS xs ++ _unpackPS ys)
+
+_mapPS f xs = _packString (map f (_unpackPS xs))
+
+_filterPS p ps = _packString (filter p (_unpackPS ps))
+_foldlPS f b ps = foldl f b (_unpackPS ps)
+_foldrPS f b ps = foldr f b (_unpackPS ps)
+
+_takePS (I# n) ps = substrPS# ps 0# (n -# 1#)
+_dropPS (I# n) ps = substrPS# ps n (lengthPS# ps -# 1#)
+_splitAtPS n ps = (_takePS n ps, _dropPS n ps)
+
+_takeWhilePS pred ps
+ = let
+ break_pt = char_pos_that_dissatisfies
+ (\ c -> pred (C# c))
+ ps
+ (lengthPS# ps)
+ 0#
+ in
+ substrPS# ps 0# (break_pt -# 1#)
+
+_dropWhilePS pred ps
+ = let
+ len = lengthPS# ps
+ break_pt = char_pos_that_dissatisfies
+ (\ c -> pred (C# c))
+ ps
+ len
+ 0#
+ in
+ substrPS# ps break_pt (len -# 1#)
+
+char_pos_that_dissatisfies :: (Char# -> Bool) -> _PackedString -> Int# -> Int# -> Int#
+
+char_pos_that_dissatisfies p ps len pos
+ | pos >=# len = pos -- end
+ | p (indexPS# ps pos) = -- predicate satisfied; keep going
+ char_pos_that_dissatisfies p ps len (pos +# 1#)
+ | otherwise = pos -- predicate not satisfied
+
+char_pos_that_dissatisfies p ps len pos -- dead code: HACK to avoid badly-typed error msg
+ = 0#
+
+-- ToDo: could certainly go quicker
+_spanPS p ps = (_takeWhilePS p ps, _dropWhilePS p ps)
+_breakPS p ps = _spanPS (not . p) ps
+
+_linesPS ps = map _packString (lines (_unpackPS ps))
+_wordsPS ps = map _packString (words (_unpackPS ps))
+
+_reversePS ps = _packString (reverse (_unpackPS ps))
+
+_concatPS [] = _nilPS
+_concatPS pss
+ = let
+ tot_len# = case (foldr ((+) . _lengthPS) 0 pss) of { I# x -> x }
+ tot_len = I# tot_len#
+ in
+ _runST (
+ new_ps_array (tot_len# +# 1#) `thenStrictlyST` \ arr# -> -- incl NUL byte!
+ packum arr# pss 0# `seqStrictlyST`
+ freeze_ps_array arr# `thenStrictlyST` \ (_ByteArray _ frozen#) ->
+
+ let has_null = byteArrayHasNUL# frozen# tot_len# in
+
+ returnStrictlyST (_PS frozen# tot_len# has_null)
+ )
+ where
+ packum :: _MutableByteArray s Int -> [_PackedString] -> Int# -> _ST s ()
+
+ packum arr [] pos
+ = write_ps_array arr pos (chr# 0#) `seqStrictlyST`
+ returnStrictlyST ()
+ packum arr (ps : pss) pos
+ = fill arr pos ps 0# (lengthPS# ps) `thenStrictlyST` \ (I# next_pos) ->
+ packum arr pss next_pos
+
+ fill :: _MutableByteArray s Int -> Int# -> _PackedString -> Int# -> Int# -> _ST s Int
+
+ fill arr arr_i ps ps_i ps_len
+ | ps_i ==# ps_len
+ = returnStrictlyST (I# (arr_i +# ps_len))
+ | otherwise
+ = write_ps_array arr (arr_i +# ps_i) (indexPS# ps ps_i) `seqStrictlyST`
+ fill arr arr_i ps (ps_i +# 1#) ps_len
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Instances for @_PackedStrings@: @Eq@, @Ord@, @Text@}
+%* *
+%************************************************************************
+
+Instances:
+\begin{code}
+instance Eq _PackedString where
+ a == b = case _tagCmpPS a b of { _LT -> False; _EQ -> True; _GT -> False }
+ a /= b = case _tagCmpPS a b of { _LT -> True; _EQ -> False; _GT -> True }
+
+instance Ord _PackedString where
+ a <= b = case _tagCmpPS a b of { _LT -> True; _EQ -> True; _GT -> False }
+ a < b = case _tagCmpPS a b of { _LT -> True; _EQ -> False; _GT -> False }
+ a >= b = case _tagCmpPS a b of { _LT -> False; _EQ -> True; _GT -> True }
+ a > b = case _tagCmpPS a b of { _LT -> False; _EQ -> False; _GT -> True }
+ _tagCmp a b = _tagCmpPS a b
+\end{code}
+
+We try hard to make this go fast:
+\begin{code}
+_tagCmpPS :: _PackedString -> _PackedString -> _CMP_TAG
+
+_tagCmpPS (_PS bs1 len1 has_null1) (_PS bs2 len2 has_null2)
+ | not has_null1 && not has_null2
+ = unsafePerformPrimIO (
+ _ccall_ strcmp ba1 ba2 `thenPrimIO` \ (I# res) ->
+ returnPrimIO (
+ if res <# 0# then _LT
+ else if res ==# 0# then _EQ
+ else _GT
+ ))
+ where
+ ba1 = _ByteArray (0, I# (len1 -# 1#)) bs1
+ ba2 = _ByteArray (0, I# (len2 -# 1#)) bs2
+
+_tagCmpPS (_PS bs1 len1 has_null1) (_CPS bs2 len2)
+ | not has_null1
+ = unsafePerformPrimIO (
+ _ccall_ strcmp ba1 ba2 `thenPrimIO` \ (I# res) ->
+ returnPrimIO (
+ if res <# 0# then _LT
+ else if res ==# 0# then _EQ
+ else _GT
+ ))
+ where
+ ba1 = _ByteArray (0, I# (len1 -# 1#)) bs1
+ ba2 = A# bs2
+
+_tagCmpPS (_CPS bs1 len1) (_CPS bs2 len2)
+ = unsafePerformPrimIO (
+ _ccall_ strcmp ba1 ba2 `thenPrimIO` \ (I# res) ->
+ returnPrimIO (
+ if res <# 0# then _LT
+ else if res ==# 0# then _EQ
+ else _GT
+ ))
+ where
+ ba1 = A# bs1
+ ba2 = A# bs2
+
+_tagCmpPS a@(_CPS _ _) b@(_PS _ _ has_null2)
+ | not has_null2
+ = -- try them the other way 'round
+ case (_tagCmpPS b a) of { _LT -> _GT; _EQ -> _EQ; _GT -> _LT }
+
+_tagCmpPS ps1 ps2 -- slow catch-all case (esp for "has_null" True)
+ = looking_at 0#
+ where
+ end1 = lengthPS# ps1 -# 1#
+ end2 = lengthPS# ps2 -# 1#
+
+ looking_at char#
+ = if char# ># end1 then
+ if char# ># end2 then -- both strings ran out at once
+ _EQ
+ else -- ps1 ran out before ps2
+ _LT
+ else if char# ># end2 then
+ _GT -- ps2 ran out before ps1
+ else
+ let
+ ch1 = indexPS# ps1 char#
+ ch2 = indexPS# ps2 char#
+ in
+ if ch1 `eqChar#` ch2 then
+ looking_at (char# +# 1#)
+ else if ch1 `ltChar#` ch2 then _LT
+ else _GT
+
+instance Text _PackedString where
+ readsPrec p = error "readsPrec: _PackedString: ToDo"
+ showsPrec p ps r = showsPrec p (_unpackPS ps) r
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Uniquely PackedString functions}
+%* *
+%************************************************************************
+
+For @_substrPS@, see the next section.
+
+@_hashPS@ is just what we happen to need in GHC...
+\begin{code}
+{- LATER?
+_hashPS ps (I# hASH_TBL_SIZE#)
+ = I# (h `remInt#` hASH_TBL_SIZE#)
+ where
+ len = lengthPS# ps
+
+ h | len <=# 0# = 0# -- probably should just be an "error"
+ | len ==# 1# = ord# c1
+ | len ==# 2# = ord# c2
+ | len ==# 3# = ord# c2 +# ord# c3
+ | len ==# 4# = ord# c2 +# ord# c3 +# ord# c4
+ | len ==# 5# = ord# c2 +# ord# c3 +# ord# c4 +# ord# c5
+ | len >=# 6# = ord# c2 +# ord# c3 +# ord# c4 +# ord# c5 +# ord# c6
+ | otherwise = 999# -- will never happen
+
+ c1 = indexPS# ps 0#
+ c2 = indexPS# ps 1#
+ c3 = indexPS# ps 2#
+ c4 = indexPS# ps 3#
+ c5 = indexPS# ps 4#
+ c6 = indexPS# ps 5#
+-}
+\end{code}
+
+%************************************************************************
+%* *
+\subsection{Local utility functions}
+%* *
+%************************************************************************
+
+The definition of @_substrPS@ is essentially:
+@take (end - begin + 1) (drop begin str)@.
+\begin{code}
+_substrPS ps (I# begin) (I# end) = substrPS# ps begin end
+
+substrPS# ps s e
+ | s <# 0# || e <# s
+ = error "_substrPS: bounds out of range"
+
+ | s >=# len || result_len# <=# 0#
+ = _nilPS
+
+ | otherwise
+ = _runST (
+ new_ps_array (result_len# +# 1#) `thenStrictlyST` \ ch_arr -> -- incl NUL byte!
+ fill_in ch_arr 0# `seqStrictlyST`
+ freeze_ps_array ch_arr `thenStrictlyST` \ (_ByteArray _ frozen#) ->
+
+ let has_null = byteArrayHasNUL# frozen# result_len# in
+
+ returnStrictlyST (_PS frozen# result_len# has_null)
+ )
+ where
+ len = lengthPS# ps
+
+ result_len# = (if e <# len then (e +# 1#) else len) -# s
+ result_len = I# result_len#
+
+ -----------------------
+ fill_in :: _MutableByteArray s Int -> Int# -> _ST s ()
+
+ fill_in arr_in# idx
+ | idx ==# result_len#
+ = write_ps_array arr_in# idx (chr# 0#) `seqStrictlyST`
+ returnStrictlyST ()
+ | otherwise
+ = let
+ ch = indexPS# ps (s +# idx)
+ in
+ write_ps_array arr_in# idx ch `seqStrictlyST`
+ fill_in arr_in# (idx +# 1#)
+\end{code}
+
+(Very :-) ``Specialised'' versions of some CharArray things...
+\begin{code}
+new_ps_array :: Int# -> _ST s (_MutableByteArray s Int)
+write_ps_array :: _MutableByteArray s Int -> Int# -> Char# -> _ST s ()
+freeze_ps_array :: _MutableByteArray s Int -> _ST s (_ByteArray Int)
+
+new_ps_array size (S# s)
+ = case (newCharArray# size s) of { StateAndMutableByteArray# s2# barr# ->
+ (_MutableByteArray bot barr#, S# s2#)}
+ where
+ bot = error "new_ps_array"
+
+write_ps_array (_MutableByteArray _ barr#) n ch (S# s#)
+ = case writeCharArray# barr# n ch s# of { s2# ->
+ ((), S# s2#)}
+
+-- same as unsafeFreezeByteArray
+freeze_ps_array (_MutableByteArray ixs arr#) (S# s#)
+ = case unsafeFreezeByteArray# arr# s# of { StateAndByteArray# s2# frozen# ->
+ (_ByteArray ixs frozen#, S# s2#) }
+\end{code}
diff --git a/ghc/lib/prelude/PS_mc.hi b/ghc/lib/prelude/PS_mc.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_mc.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS_mg.hi b/ghc/lib/prelude/PS_mg.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_mg.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS_mp.hi b/ghc/lib/prelude/PS_mp.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_mp.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS_mr.hi b/ghc/lib/prelude/PS_mr.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_mr.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS_mt.hi b/ghc/lib/prelude/PS_mt.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_mt.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS_p.hi b/ghc/lib/prelude/PS_p.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_p.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PS_t.hi b/ghc/lib/prelude/PS_t.hi
new file mode 100644
index 0000000000..b55f39259b
--- /dev/null
+++ b/ghc/lib/prelude/PS_t.hi
@@ -0,0 +1,104 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludePS where
+import PreludeArray(_ByteArray)
+import PreludeBuiltin(Char(..), Int(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import Stdio(_FILE)
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packBytesForC :: [Char] -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packBytesForCST :: [Char] -> _State a -> (_ByteArray Int, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCBytesST :: Int -> _Addr -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 112 _N_ _S_ "U(P)U(P)" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringForC :: [Char] -> ByteArray#
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_packStringST :: [Char] -> _State a -> (_PackedString, _State a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_unsafeByteArrayToPS :: _ByteArray a -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unpackPS# :: Addr# -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "P" _N_ _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Parallel.hi b/ghc/lib/prelude/Parallel.hi
new file mode 100644
index 0000000000..27e35d56e8
--- /dev/null
+++ b/ghc/lib/prelude/Parallel.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parallel where
+infixr 0 `par`
+infixr 1 `seq`
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+
diff --git a/ghc/lib/prelude/Parallel.lhs b/ghc/lib/prelude/Parallel.lhs
new file mode 100644
index 0000000000..7ee2c7a24e
--- /dev/null
+++ b/ghc/lib/prelude/Parallel.lhs
@@ -0,0 +1,35 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[Parallel]{Parallel Constructs}
+
+\begin{code}
+module Parallel (par, seq)
+
+where
+
+infixr 0 `par`
+infixr 1 `seq`
+
+par, seq :: a -> b -> b
+
+#if !defined(__CONCURRENT_HASKELL__) && !defined(__PARALLEL_HASKELL__)
+
+par a b = b
+seq a b = b
+
+#else
+
+-- Just names without the ugly underscores
+
+{-# INLINE par #-}
+par a b = _par_ a b
+
+{-# INLINE seq #-}
+seq a b = _seq_ a b
+
+-- Maybe parIO and the like could be added here later.
+
+#endif {- __CONCURRENT_HASKELL__ -}
+\end{code}
+
diff --git a/ghc/lib/prelude/Parallel_mc.hi b/ghc/lib/prelude/Parallel_mc.hi
new file mode 100644
index 0000000000..bef532dd74
--- /dev/null
+++ b/ghc/lib/prelude/Parallel_mc.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parallel where
+infixr 0 `par`
+infixr 1 `seq`
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ par# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ seq# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+
diff --git a/ghc/lib/prelude/Parallel_mg.hi b/ghc/lib/prelude/Parallel_mg.hi
new file mode 100644
index 0000000000..27e35d56e8
--- /dev/null
+++ b/ghc/lib/prelude/Parallel_mg.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parallel where
+infixr 0 `par`
+infixr 1 `seq`
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+
diff --git a/ghc/lib/prelude/Parallel_mp.hi b/ghc/lib/prelude/Parallel_mp.hi
new file mode 100644
index 0000000000..bef532dd74
--- /dev/null
+++ b/ghc/lib/prelude/Parallel_mp.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parallel where
+infixr 0 `par`
+infixr 1 `seq`
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ par# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> case _#_ seq# [u0] [u2] of { _PRIM_ 0# -> _TYAPP_ parError# { u1 }; (u4 :: Int#) -> u3 } _N_ #-}
+
diff --git a/ghc/lib/prelude/Parallel_p.hi b/ghc/lib/prelude/Parallel_p.hi
new file mode 100644
index 0000000000..27e35d56e8
--- /dev/null
+++ b/ghc/lib/prelude/Parallel_p.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parallel where
+infixr 0 `par`
+infixr 1 `seq`
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+
diff --git a/ghc/lib/prelude/Parallel_t.hi b/ghc/lib/prelude/Parallel_t.hi
new file mode 100644
index 0000000000..27e35d56e8
--- /dev/null
+++ b/ghc/lib/prelude/Parallel_t.hi
@@ -0,0 +1,9 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Parallel where
+infixr 0 `par`
+infixr 1 `seq`
+par :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+seq :: a -> b -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 01 _N_ _S_ "AS" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u0) (u3 :: u1) -> u3 _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel.hi b/ghc/lib/prelude/Prel.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel.hs b/ghc/lib/prelude/Prel.hs
new file mode 100644
index 0000000000..e488a47b16
--- /dev/null
+++ b/ghc/lib/prelude/Prel.hs
@@ -0,0 +1,410 @@
+-- Standard value bindings
+
+module Prelude (
+ -- NB: not the "real" Prelude.hi export list
+ ($),
+ (&&),
+ (.),
+ (^),
+ (^^),
+ appendBin,
+ asTypeOf,
+ atan2,
+ chr,
+ const,
+ flip,
+ fromIntegral,
+ fromRealFrac,
+ fst,
+ gcd,
+ id,
+ isAlpha,
+ isAlphanum,
+ isAscii,
+ isControl,
+ isDigit,
+ isLower,
+ isNullBin,
+ isPrint,
+ isSpace,
+ isUpper,
+ lcm,
+ maxChar,
+ maxInt,
+ minChar,
+ minInt,
+ not,
+ nullBin,
+ ord,
+ otherwise,
+ snd,
+ subtract,
+ toLower,
+ toUpper,
+ until,
+ (||)
+
+#if defined(__UNBOXED_INSTANCES__)
+ , minInt#, maxInt#
+ , minChar#, maxChar#
+ , toChar#, fromChar#
+ , isAscii#, isControl#, isPrint#, isSpace#
+ , isUpper#, isLower#, isAlpha#, isDigit#, isAlphanum#
+ , toUpper#, toLower#
+#endif
+ ) where
+
+import UTypes ( Bin ) -- so we don't get any data constructors!
+
+import Cls
+import Core
+import TyComplex
+import IChar
+import IComplex
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IRatio
+import List ( (++) )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+--infixr 9 .
+--infixr 8 ^, ^^
+--infixr 3 &&
+--infixr 2 ||
+--infixr 0 $
+
+---------------------------------------------------------------
+-- Binary functions
+---------------------------------------------------------------
+
+nullBin :: Bin
+isNullBin :: Bin -> Bool
+appendBin :: Bin -> Bin -> Bin
+
+-- *
+nullBin = error "nullBin{Prelude}\n"
+isNullBin = error "isNullBin{Prelude}\n"
+appendBin = error "appendBin{Prelude}\n"
+
+---------------------------------------------------------------
+-- Boolean functions
+---------------------------------------------------------------
+
+{-# INLINE (&&) #-}
+{-# INLINE (||) #-}
+(&&), (||) :: Bool -> Bool -> Bool
+True && x = x
+False && _ = False
+True || _ = True
+False || x = x
+
+{-# INLINE not #-}
+not :: Bool -> Bool
+not True = False
+not False = True
+
+{-# INLINE otherwise #-}
+otherwise :: Bool
+otherwise = True
+
+---------------------------------------------------------------
+-- Int functions
+---------------------------------------------------------------
+
+minInt, maxInt :: Int
+minInt = -2147483647 -- **********************
+maxInt = 2147483647 -- **********************
+
+---------------------------------------------------------------
+-- Char functions
+---------------------------------------------------------------
+
+minChar, maxChar :: Char
+minChar = '\0'
+maxChar = '\255'
+
+ord :: Char -> Int
+ord c = case c of { C# ch -> I# (ord# ch) }
+
+chr :: Int -> Char
+chr i = case i of { I# ih -> C# (chr# ih) }
+
+isAscii, isControl, isPrint, isSpace :: Char -> Bool
+isUpper, isLower, isAlpha, isDigit, isAlphanum :: Char -> Bool
+
+isAscii c = ord c < 128
+isControl c = c < ' ' || c == '\DEL'
+isPrint c = c >= ' ' && c <= '~'
+isSpace c = c == ' ' || c == '\t' || c == '\n' ||
+ c == '\r' || c == '\f' || c == '\v'
+isUpper c = c >= 'A' && c <= 'Z'
+isLower c = c >= 'a' && c <= 'z'
+isAlpha c = isUpper c || isLower c
+isDigit c = c >= '0' && c <= '9'
+isAlphanum c = isAlpha c || isDigit c
+
+
+toUpper, toLower :: Char -> Char
+toUpper c | isLower c = chr ((ord c - ord 'a') + ord 'A')
+ | otherwise = c
+
+toLower c | isUpper c = chr ((ord c - ord 'A') + ord 'a')
+ | otherwise = c
+
+#if defined(__UNBOXED_INSTANCES__)
+---------------------------------------------------------------
+-- Int# functions
+---------------------------------------------------------------
+
+-- ToDo: Preferable to overload minInt and maxInt
+-- minInt, maxInt :: Num a => a
+-- Solution: place in class Num (as pi is in Floating)
+
+minInt#, maxInt# :: Int#
+minInt# = -2147483647#
+maxInt# = 2147483647#
+
+---------------------------------------------------------------
+-- Char# functions -- ToDo: class Chr ???
+---------------------------------------------------------------
+
+toChar# :: Char -> Char#
+toChar# (C# c#) = c#
+
+fromChar# :: Char# -> Char
+fromChar# c# = C# c#
+
+-- ord# and chr# are builtin
+
+minChar#, maxChar# :: Char#
+minChar# = '\0'#
+maxChar# = '\255'#
+
+isAscii#, isControl#, isPrint#, isSpace# :: Char# -> Bool
+isUpper#, isLower#, isAlpha#, isDigit#, isAlphanum# :: Char# -> Bool
+
+isAscii# c = ord# c < 128#
+isControl# c = c < ' '# || c == '\DEL'#
+isPrint# c = c >= ' '# && c <= '~'#
+isSpace# c = c == ' '# || c == '\t'# || c == '\n'# ||
+ c == '\r'# || c == '\f'# || c == '\v'#
+isUpper# c = c >= 'A'# && c <= 'Z'#
+isLower# c = c >= 'a'# && c <= 'z'#
+isAlpha# c = isUpper# c || isLower# c
+isDigit# c = c >= '0'# && c <= '9'#
+isAlphanum# c = isAlpha# c || isDigit# c
+
+
+toUpper#, toLower# :: Char# -> Char#
+toUpper# c | isLower# c = chr# ((ord# c - ord# 'a'#) + ord# 'A'#)
+ | otherwise = c
+
+toLower# c | isUpper# c = chr# ((ord# c - ord# 'A'#) + ord# 'a'#)
+ | otherwise = c
+
+#endif {-UNBOXED INSTANCES-}
+
+---------------------------------------------------------------
+-- Numeric functions
+---------------------------------------------------------------
+
+--{-# GENERATE_SPECS subtract a{Int#,Double#} #-}
+{-# GENERATE_SPECS subtract a{~,Int,Double} #-}
+subtract :: (Num a) => a -> a -> a
+#ifdef USE_REPORT_PRELUDE
+subtract = flip (-)
+#else
+subtract x y = y - x
+#endif /* ! USE_REPORT_PRELUDE */
+
+--{-# GENERATE_SPECS gcd a{Int#,Int,Integer} #-}
+{-# GENERATE_SPECS gcd a{~,Int,Integer} #-}
+gcd :: (Integral a) => a -> a -> a
+gcd 0 0 = error "gcd{Prelude}: gcd 0 0 is undefined\n"
+gcd x y = gcd' (abs x) (abs y)
+ where gcd' x 0 = x
+ gcd' x y = gcd' y (x `rem` y)
+
+--{-# GENERATE_SPECS lcm a{Int#,Int,Integer} #-}
+{-# GENERATE_SPECS lcm a{~,Int,Integer} #-}
+lcm :: (Integral a) => a -> a -> a
+lcm _ 0 = 0
+lcm 0 _ = 0
+lcm x y = abs ((x `quot` (gcd x y)) * y)
+
+--{-# GENERATE_SPECS (^) a{~,Int#,Double#,Int,Integer,Double,Complex(Double#),Complex(Double)} b{~,Int#,Int} #-}
+{-# GENERATE_SPECS (^) a{~,Int,Integer,Double,Rational,Complex(Double)} b{~,Int} #-}
+(^) :: (Num a, Integral b) => a -> b -> a
+x ^ 0 = 1
+x ^ (n+1) = f x n x
+ where f _ 0 y = y
+ f x n y = g x n where
+ g x n | odd n = f x (n-1) (x*y)
+ | otherwise = g (x*x) (n `div` 2)
+_ ^ _ = error "(^){Prelude}: negative exponent\n"
+
+--{-# GENERATE_SPECS (^^) a{~,Double#,Double,Complex(Double#),Complex(Double)} b{~,Int#,Int} #-}
+{-# GENERATE_SPECS (^^) a{~,Double,Rational} b{~,Int} #-}
+(^^) :: (Fractional a, Integral b) => a -> b -> a
+x ^^ n = if n >= 0 then x^n else recip (x^(-n))
+
+--{-# GENERATE_SPECS atan2 a{Double#,Double} #-}
+{-# GENERATE_SPECS atan2 a{~,Double} #-}
+atan2 :: (RealFloat a) => a -> a -> a
+#if USE_REPORT_PRELUDE
+atan2 y x = case (signum y, signum x) of
+ ( 0, 1) -> 0
+ ( 1, 0) -> pi/2
+ ( 0,-1) -> pi
+ (-1, 0) -> -pi/2
+ ( _, 1) -> atan (y/x)
+ ( _,-1) -> atan (y/x) + pi
+ ( 0, 0) -> error "atan2{Prelude}: atan2 of origin\n"
+#else {- steal Lennart's version -}
+atan2 y x =
+ if y == 0 then
+ if x > 0 then 0
+ else if x < 0 then pi
+ else {- x == 0 -} error "Prelude.atan2: atan2 of origin"
+ else if x == 0 then
+ if y > 0 then pi/2
+ else {- y < 0 -} -pi/2
+ else if x > 0 then
+ atan (y/x) -- 1st and 4th quadrant
+ else {- x < 0 -}
+ if y > 0 then
+ atan (y/x) + pi -- 2nd quadrant
+ else {- y < 0 -}
+ atan (y/x) - pi -- 3rd quadrant
+#endif
+
+---------------------------------------------------------------
+-- Some standard functions:
+---------------------------------------------------------------
+
+-- component projections for pairs:
+--{-# GENERATE_SPECS fst a b #-}
+fst :: (a,b) -> a
+fst (x,y) = x
+
+--{-# GENERATE_SPECS snd a b #-}
+snd :: (a,b) -> b
+snd (x,y) = y
+
+-- identity function
+--{-# GENERATE_SPECS id a #-}
+id :: a -> a
+id x = x
+
+-- constant function
+--{-# GENERATE_SPECS const a b #-}
+const :: a -> b -> a
+const x _ = x
+
+-- function composition
+{-# INLINE (.) #-}
+--{-# GENERATE_SPECS (.) a b c #-}
+(.) :: (b -> c) -> (a -> b) -> a -> c
+(f . g) x = f (g x)
+
+-- flip f takes its (first) two arguments in the reverse order of f.
+--{-# GENERATE_SPECS flip a b c #-}
+flip :: (a -> b -> c) -> b -> a -> c
+flip f x y = f y x
+
+-- right-associating infix application operator (useful in continuation-
+-- passing style)
+--{-# GENERATE_SPECS ($) a b #-}
+($) :: (a -> b) -> a -> b
+f $ x = f x
+
+-- until p f yields the result of applying f until p holds.
+--{-# GENERATE_SPECS until a #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+until p f x | p x = x
+ | otherwise = until p f (f x)
+
+-- asTypeOf is a type-restricted version of const. It is usually used
+-- as an infix operator, and its typing forces its first argument
+-- (which is usually overloaded) to have the same type as the second.
+--{-# GENERATE_SPECS asTypeOf a #-}
+asTypeOf :: a -> a -> a
+asTypeOf = const
+
+---------------------------------------------------------------
+-- fromIntegral and fromRealFrac with explicit specialisations
+---------------------------------------------------------------
+
+{- LATER:
+{-# SPECIALIZE fromIntegral ::
+ Int# -> Int# = id,
+ Int# -> Double# = int2Double#,
+ Int# -> Int = i2I#,
+ Int# -> Integer = int2Integer#,
+ Int# -> Double = i2D#,
+ Int -> Int# = i2i,
+ Int -> Double# = i2d,
+ Int -> Int = id,
+ Int -> Integer = i2Integer,
+ Int -> Double = i2D,
+ Integer -> Int# = integer2i,
+ Integer -> Double# = integer2d,
+ Integer -> Int = integer2I,
+ Integer -> Integer = id,
+ Integer -> Double = integer2D #-}
+-}
+
+{-# SPECIALIZE fromIntegral ::
+ Int -> Int = id,
+ Int -> Integer = i2Integer,
+ Int -> Double = i2D,
+ Integer -> Int = integer2I,
+ Integer -> Integer = id,
+ Integer -> Double = integer2D #-}
+
+i2I# i# = I# i#
+i2D# i# = D# (int2Double# i#)
+
+i2i (I# i#) = i#
+i2d (I# i#) = int2Double# i#
+i2D (I# i#) = D# (int2Double# i#)
+i2Integer (I# i#) = int2Integer# i#
+
+integer2i (J# a# s# d#) = integer2Int# a# s# d#
+integer2d (J# a# s# d#) = encodeDouble# a# s# d# 0#
+integer2I (J# a# s# d#) = I# (integer2Int# a# s# d#)
+integer2F (J# a# s# d#) = F# (encodeFloat# a# s# d# 0#)
+integer2D (J# a# s# d#) = D# (encodeDouble# a# s# d# 0#)
+
+fromIntegral :: (Integral a, Num b) => a -> b
+fromIntegral = fromInteger . toInteger
+
+{- LATER:
+{-# SPECIALIZE fromRealFrac ::
+ Double# -> Double# = id,
+ Double# -> Double = d2D#,
+ Double -> Double# = d2d,
+ Double -> Double = id #-}
+-}
+
+{-# SPECIALIZE fromRealFrac ::
+ Float -> Float = id,
+ Float -> Double = f2D,
+ Double -> Float = d2F,
+ Double -> Double = id #-}
+
+d2F# d# = F# (double2Float# d#)
+d2D# d# = D# d#
+
+f2d (F# f#) = float2Double# f#
+f2D (F# f#) = D# (float2Double# f#)
+
+d2d (D# d#) = d#
+d2F (D# d#) = F# (double2Float# d#)
+
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+fromRealFrac = fromRational . toRational
diff --git a/ghc/lib/prelude/Prel13.hi b/ghc/lib/prelude/Prel13.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13.hs b/ghc/lib/prelude/Prel13.hs
new file mode 100644
index 0000000000..89d69d8ec7
--- /dev/null
+++ b/ghc/lib/prelude/Prel13.hs
@@ -0,0 +1,191 @@
+-- compiled to produce a 1.3 (whatever that is) Prelude.hi file
+--
+module Prelude (
+
+ -- 1.3 extras (I/O is later)
+ thenMaybe,
+ curry, uncurry,
+-- LATER?
+-- copy, lookup,
+
+ -- NO: really builtin (0.20+): trace,
+
+ (%), numerator, denominator, approxRational,
+
+ realPart, imagPart, conjugate, mkPolar, cis,
+ polar, magnitude, phase,
+
+ _appendPS, _breakPS, _concatPS, _dropPS, _dropWhilePS,
+ _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS,
+ _linesPS, _mapPS, _nilPS, _consPS, _nullPS, _packCBytes,
+ _packCString, _packString, _byteArrayToPS, _psToByteArray,
+ _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS,
+ _takeWhilePS, _unpackPS, _wordsPS, _putPS,
+
+ (&&), (||), not, otherwise,
+ (^), (^^), appendBin, asTypeOf, atan2, fromIntegral,
+ fromRealFrac, gcd, isAlpha, isAlphanum, isAscii, isControl,
+ isDigit, isLower, isNullBin, isPrint, isSpace, isUpper, lcm,
+ maxChar, maxInt, minChar, minInt, nullBin, subtract, toLower,
+ toUpper, until, fst, snd, id, const, (.), flip, ($),
+ ord, chr,
+
+#if defined(__UNBOXED_INSTANCES__)
+ minInt#, maxInt#,
+ minChar#, maxChar#,
+ toChar#, fromChar#,
+ isAscii#, isControl#, isPrint#, isSpace#,
+ isUpper#, isLower#, isAlpha#, isDigit#, isAlphanum#,
+ toUpper#, toLower#,
+#endif
+
+ head, last, tail, init, null, (++), (\\), genericLength,
+ length, (!!), map, filter, partition, {-BUILTIN: foldl,-}
+ foldl1, scanl, scanl1, {-BUILTIN: foldr,-} foldr1, scanr, scanr1,
+ iterate, repeat, cycle, take, drop, splitAt, takeWhile,
+ dropWhile, span, break, lines, words, unlines, unwords, nub,
+ reverse, and, or, any, all, elem, notElem, sum,
+ product, sums, products, maximum, minimum, concat,
+ transpose, zip, zip3, zip4, zip5, zip6, zip7, zipWith,
+ zipWith3, zipWith4, zipWith5, zipWith6, zipWith7, unzip,
+ unzip3, unzip4, unzip5, unzip6, unzip7,
+
+ array, listArray, (!), bounds, indices, elems, assocs,
+ accumArray, (//), accum, amap, ixmap,
+
+ reads, shows, show, read, lex, showChar, showString,
+ readParen, showParen, readLitChar, showLitChar, readSigned,
+ showSigned, showSpace__, readDec, showInt, readFloat, showFloat,
+ _showHex, _showRadix, _showDigit, -- non-std
+ _readList, _showList, _truncate, _round, _ceiling, _floor,
+
+ _readRational, _showRational, -- extras!
+
+ -- 1.3 I/O stuff from PreludeIO, some *renamed*
+ (>>),
+ (>>=),
+ accumulate,
+ appendFile,
+ either,
+ fail,
+ failWith,
+ getChar,
+ hClose,
+ hFileSize,
+ hFlush,
+ hGetChar,
+ hGetContents,
+ hGetPosn,
+ hIsBlockBuffered,
+ hIsClosed,
+ hIsEOF,
+ hIsLineBuffered,
+ hIsNotBuffered,
+ hIsOpen,
+ hIsReadable,
+ hIsSeekable,
+ hIsWritable,
+ hLookAhead,
+ hPutChar,
+ hPutStr,
+ hPutText,
+ hReady,
+ hSeek,
+ hSetBuffering,
+ hSetPosn,
+ handle,
+ interact,
+ isEOF,
+ openFile,
+ putChar,
+ putStr,
+ putText,
+ print,
+ readFile,
+ return,
+ sequence,
+ stderr,
+ stdin,
+ stdout,
+ try,
+ writeFile,
+
+ primIOToIO, ioToPrimIO, -- extra, and very dodgy
+
+ -- and for foldr/build
+ _build
+
+ ) where
+
+-- few *Ty(s) imports
+import TyArray ( Array(..), Assoc(..), _ByteArray )
+import TyComplex ( Complex(..) )
+--import Builtin ( trace )
+import Cls hiding ( String )
+import Core
+import PreludeGlaST ( thenStrictlyST, _MutableByteArray, _MutableArray )
+import PreludePrimIO ( thenPrimIO, returnPrimIO )
+--import PrelCore13
+import IArray
+import IBool
+import IChar
+import IComplex
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IRatio
+import ITup0
+import ITup2
+import ITup3
+import ITup4
+import ITup5
+import List
+import Prel
+import Text
+import PS
+
+import PreludeIO renaming ( -- IOError13 to IOError -- can't rename PreludeCore types
+ appendFile13 to appendFile
+ , interact13 to interact
+ , print13 to print
+ , readFile13 to readFile
+ , stderr13 to stderr
+ , stdin13 to stdin
+ , stdout13 to stdout
+ , writeFile13 to writeFile
+ )
+
+primIOToIO :: PrimIO a -> IO a
+primIOToIO m = m `thenPrimIO` \ a -> return a
+
+ioToPrimIO :: IO a -> PrimIO a
+ioToPrimIO io
+ = io `thenPrimIO` \ r ->
+ case r of
+ Right a -> returnPrimIO a
+ Left e -> error ("I/O Error (ioToPrimIO): " ++ shows e "\n")
+
+
+-- 1.3 extra functions
+
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+thenMaybe Nothing _ = Nothing
+thenMaybe (Just x) f = f x
+
+curry :: ((a,b) -> c) -> a -> b -> c
+curry f x y = f (x,y)
+
+uncurry :: (a -> b -> c) -> (a,b) -> c
+uncurry f (x,y) = f x y
+
+{- LATER?:
+copy :: Int -> a -> [a]
+copy n x = take n (repeat x)
+
+lookup :: Eq a => [(a,b)] -> a -> Maybe b
+lookup [] _ = Nothing
+lookup ((key,val) : rest) x | key == x = Just val
+ | otherwise = lookup rest x
+-}
diff --git a/ghc/lib/prelude/Prel13_mc.hi b/ghc/lib/prelude/Prel13_mc.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_mc.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13_mg.hi b/ghc/lib/prelude/Prel13_mg.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_mg.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13_mp.hi b/ghc/lib/prelude/Prel13_mp.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_mp.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13_mr.hi b/ghc/lib/prelude/Prel13_mr.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_mr.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13_mt.hi b/ghc/lib/prelude/Prel13_mt.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_mt.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13_p.hi b/ghc/lib/prelude/Prel13_p.hi
new file mode 100644
index 0000000000..bbb6828ab0
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_p.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel13_t.hi b/ghc/lib/prelude/Prel13_t.hi
new file mode 100644
index 0000000000..d646851610
--- /dev/null
+++ b/ghc/lib/prelude/Prel13_t.hi
@@ -0,0 +1,509 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(interact13) renaming (interact13 to interact)
+import PreludeIOError(IOError13)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludeMonadicIO((>>), (>>=), Either, accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludePrimIO(_MVar)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13) renaming (readFile13 to readFile)
+import PreludeStdIO(BufferMode, IOMode, Maybe, SeekMode, _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13) renaming (stderr13 to stderr, stdin13 to stdin, stdout13 to stdout)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13) renaming (appendFile13 to appendFile, print13 to print, writeFile13 to writeFile)
+import Stdio(_FILE)
+infixr 1 >>
+infixr 1 >>=
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+curry :: ((a, b) -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 6 _/\_ u0 u1 u2 -> \ (u3 :: (u0, u1) -> u2) (u4 :: u0) (u5 :: u1) -> let {(u6 :: (u0, u1)) = _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ u3 [ u6 ] _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+ioToPrimIO :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+primIOToIO :: (_State _RealWorld -> (a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 5 _/\_ u0 u1 -> \ (u2 :: Maybe u0) (u3 :: u0 -> Maybe u1) -> case u2 of { _ALG_ Nothing -> _!_ Nothing [u1] []; Just (u4 :: u0) -> _APP_ u3 [ u4 ]; _NO_DEFLT_ } _N_ #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+uncurry :: (a -> b -> c) -> (a, b) -> c
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u4, u5 ] _N_} _F_ _IF_ARGS_ 3 2 XC 4 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: (u0, u1)) -> case u4 of { _ALG_ _TUP_2 (u5 :: u0) (u6 :: u1) -> _APP_ u3 [ u5, u6 ]; _NO_DEFLT_ } _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+interact :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13.hi b/ghc/lib/prelude/PrelCore13.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13.hs b/ghc/lib/prelude/PrelCore13.hs
new file mode 100644
index 0000000000..01bf9a7b82
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13.hs
@@ -0,0 +1,69 @@
+-- proto Haskell 1.3 version
+--
+module PreludeCore (
+
+ Eq(..), Ord(..), Num(..), Real(..), Integral(..),
+ Fractional(..), Floating(..), RealFrac(..), RealFloat(..),
+ Ix(..), Enum(..), Text(..), Binary(..),
+ _CCallable(..), _CReturnable(..),
+
+ -- NO: really builtin (0.20+): trace,
+
+ Array{-abstract-},
+ Assoc(..), -- *should* have disappeared: ToDo: LATER
+ _ByteArray, _MutableArray, _MutableByteArray,
+ -- if you want the types *unabstractly*, import PreludeGlaST
+
+ Bin{-abstract-},
+
+ Complex(..),
+
+ _PackedString{-abstract-}, _FILE,
+
+ ReadS(..), ShowS(..),
+
+ -- 1.3 I/O stuff from PreludeIO, some *renamed*
+ IOError13(..), -- ToDo: rename
+ Either(..),
+ BufferMode(..),
+ IOMode(..),
+ SeekMode(..),
+ Maybe(..),
+ FilePath(..),
+ Handle(..),
+ HandlePosn(..),
+ IO(..),
+ _Handle,
+ _MVar
+
+ ) where
+
+-- few *Ty(s) imports
+import UTypes ( Bin ) -- no data constructors, please!
+import TyArray ( Array(..), Assoc(..), _ByteArray )
+import TyComplex ( Complex(..) )
+--import Builtin ( trace )
+import Cls hiding ( String )
+import Core
+import PS
+import PreludeGlaST ( _MutableByteArray, _MutableArray )
+import IArray
+import IBool
+import IChar
+import IComplex
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IRatio
+import ITup0
+import ITup2
+import ITup3
+import ITup4
+import ITup5
+import List
+import Prel
+import Text
+
+import PreludeIO -- renaming ( IOError13 to IOError ) -- can't rename PreludeCore types
diff --git a/ghc/lib/prelude/PrelCore13_mc.hi b/ghc/lib/prelude/PrelCore13_mc.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_mc.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13_mg.hi b/ghc/lib/prelude/PrelCore13_mg.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_mg.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13_mp.hi b/ghc/lib/prelude/PrelCore13_mp.hi
new file mode 100644
index 0000000000..0109c89244
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_mp.hi
@@ -0,0 +1,990 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13_mr.hi b/ghc/lib/prelude/PrelCore13_mr.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_mr.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13_mt.hi b/ghc/lib/prelude/PrelCore13_mt.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_mt.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13_p.hi b/ghc/lib/prelude/PrelCore13_p.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_p.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCore13_t.hi b/ghc/lib/prelude/PrelCore13_t.hi
new file mode 100644
index 0000000000..0116c44923
--- /dev/null
+++ b/ghc/lib/prelude/PrelCore13_t.hi
@@ -0,0 +1,994 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _RealWorld(..), _State(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO(Either(..), IO(..))
+import PreludePS(_PackedString)
+import PreludePrimIO(_MVar)
+import PreludeRatio(Ratio(..))
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle)
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PrelCoreHi.hs b/ghc/lib/prelude/PrelCoreHi.hs
new file mode 100644
index 0000000000..57a0962292
--- /dev/null
+++ b/ghc/lib/prelude/PrelCoreHi.hs
@@ -0,0 +1,57 @@
+-- compiled solely to produce an .hi file
+--
+module PreludeCore (
+
+ Eq(..), Ord(..), Num(..), Real(..), Integral(..),
+ Fractional(..), Floating(..), RealFrac(..), RealFloat(..),
+ Ix(..), Enum(..), Text(..), Binary(..),
+ _CCallable(..), _CReturnable(..),
+
+ -- NO: really builtin (0.20+): trace,
+
+ Array{-abstract-}, Assoc(..),
+ _ByteArray, _MutableArray, _MutableByteArray,
+ -- if you want the types *unabstractly*, import PreludeGlaST
+
+ Bin{-abstract-},
+
+ Complex(..),
+
+ _PackedString{-abstract-}, _FILE,
+
+ ReadS(..), ShowS(..),
+
+-- IOResult, -- has to be here because wired into compiler
+ Dialogue(..), Request(..), Response(..), SigAct(..), IOError(..),
+ SuccCont(..), StrCont(..), StrListCont(..), BinCont(..), FailCont(..)
+ ) where
+
+-- few *Ty(s) imports
+import UTypes ( Bin ) -- no data constructors, please!
+import TyArray ( Array(..), Assoc(..), _ByteArray )
+import TyComplex ( Complex(..) )
+import TyIO
+--import Builtin ( trace )
+import Cls hiding ( String )
+import Core
+import PS
+import PreludeGlaST ( _MutableByteArray, _MutableArray )
+import IArray
+import IBool
+import IChar
+import IComplex
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IO
+import IRatio
+import ITup0
+import ITup2
+import ITup3
+import ITup4
+import ITup5
+import List
+import Prel
+import Text
diff --git a/ghc/lib/prelude/Prel_mc.hi b/ghc/lib/prelude/Prel_mc.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel_mc.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel_mg.hi b/ghc/lib/prelude/Prel_mg.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel_mg.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel_mp.hi b/ghc/lib/prelude/Prel_mp.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel_mp.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel_mr.hi b/ghc/lib/prelude/Prel_mr.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel_mr.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel_mt.hi b/ghc/lib/prelude/Prel_mt.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel_mt.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel_p.hi b/ghc/lib/prelude/Prel_p.hi
new file mode 100644
index 0000000000..375474bdee
--- /dev/null
+++ b/ghc/lib/prelude/Prel_p.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prel_t.hi b/ghc/lib/prelude/Prel_t.hi
new file mode 100644
index 0000000000..392366b9e4
--- /dev/null
+++ b/ghc/lib/prelude/Prel_t.hi
@@ -0,0 +1,87 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeBuiltin(Bin, Char(..), Int(..), Tuple2)
+import PreludeCore(Bool(..), Fractional(..), Integral(..), Num(..), RealFloat(..), RealFrac(..))
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/prelude/Prelude.hi b/ghc/lib/prelude/Prelude.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/PreludeCore.hi b/ghc/lib/prelude/PreludeCore.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_mc.hi b/ghc/lib/prelude/PreludeCore_mc.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_mc.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_mg.hi b/ghc/lib/prelude/PreludeCore_mg.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_mg.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_mp.hi b/ghc/lib/prelude/PreludeCore_mp.hi
new file mode 100644
index 0000000000..b966a8d186
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_mp.hi
@@ -0,0 +1,967 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_mr.hi b/ghc/lib/prelude/PreludeCore_mr.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_mr.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_mt.hi b/ghc/lib/prelude/PreludeCore_mt.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_mt.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_p.hi b/ghc/lib/prelude/PreludeCore_p.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_p.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeCore_t.hi b/ghc/lib/prelude/PreludeCore_t.hi
new file mode 100644
index 0000000000..9f36cd0d5d
--- /dev/null
+++ b/ghc/lib/prelude/PreludeCore_t.hi
@@ -0,0 +1,971 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeCore where
+import PreludeArray(Array, Assoc(..), _ByteArray)
+import PreludeBuiltin(Bin, Char(..), Double(..), Float(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, _Addr(..), _CMP_TAG(..), _Word(..))
+import PreludeComplex(Complex(..))
+import PreludeGlaMisc(_MallocPtr(..), _StablePtr(..))
+import PreludeGlaST(_MutableArray, _MutableByteArray)
+import PreludeIO(BinCont(..), Dialogue(..), FailCont(..), IOError(..), Request(..), Response(..), SigAct(..), StrCont(..), StrListCont(..), SuccCont(..))
+import PreludePS(_PackedString)
+import PreludeRatio(Ratio(..))
+import PreludeText(ReadS(..), ShowS(..))
+import Stdio(_FILE)
+class Binary a where
+ readBin :: Bin -> (a, Bin)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: Bin) -> _APP_ _TYAPP_ patError# { (Bin -> (u0, Bin)) } [ _NOREP_S_ "%DPreludeCore.Binary.readBin\"", u2 ] _N_ #-}
+ showBin :: a -> Bin -> Bin
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Bin -> (u0, Bin), u0 -> Bin -> Bin)) -> case u1 of { _ALG_ _TUP_2 (u2 :: Bin -> (u0, Bin)) (u3 :: u0 -> Bin -> Bin) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Binary u0}}) (u2 :: u0) (u3 :: Bin) -> _APP_ _TYAPP_ patError# { (u0 -> Bin -> Bin) } [ _NOREP_S_ "%DPreludeCore.Binary.showBin\"", u2, u3 ] _N_ #-}
+class (Ord a) => Enum a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u2; _NO_DEFLT_ } _N_ #-} where
+ enumFrom :: a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFrom\"", u2 ] _N_ #-}
+ enumFromThen :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Enum u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Enum.enumFromThen\"", u2, u3 ] _N_ #-}
+ enumFromTo :: a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ enumFromThenTo :: a -> a -> a -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> [u0], u0 -> u0 -> u0 -> [u0])) -> case u1 of { _ALG_ _TUP_5 (u2 :: {{Ord u0}}) (u3 :: u0 -> [u0]) (u4 :: u0 -> u0 -> [u0]) (u5 :: u0 -> u0 -> [u0]) (u6 :: u0 -> u0 -> u0 -> [u0]) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 1222 _N_ _S_ "SLLL" _N_ _N_ #-}
+class Eq a where
+ (==) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Eq.(==)\"", u2, u3 ] _N_ #-}
+ (/=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (u0 -> u0 -> Bool, u0 -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_2 (u2 :: u0 -> u0 -> Bool) (u3 :: u0 -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Fractional a) => Floating a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ pi :: a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 0 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 1 X 2 _/\_ u0 -> \ (u1 :: {{Floating u0}}) -> _APP_ _TYAPP_ patError# { u0 } [ _NOREP_S_ "%DPreludeCore.Floating.pi\"" ] _N_ #-}
+ exp :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.exp\"", u2 ] _N_ #-}
+ log :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.log\"", u2 ] _N_ #-}
+ sqrt :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ (**) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ logBase :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ sin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sin\"", u2 ] _N_ #-}
+ cos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cos\"", u2 ] _N_ #-}
+ tan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asin :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asin\"", u2 ] _N_ #-}
+ acos :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acos\"", u2 ] _N_ #-}
+ atan :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ue; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atan\"", u2 ] _N_ #-}
+ sinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uf; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.sinh\"", u2 ] _N_ #-}
+ cosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ug; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.cosh\"", u2 ] _N_ #-}
+ tanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uh; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ asinh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> ui; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.asinh\"", u2 ] _N_ #-}
+ acosh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uj; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.acosh\"", u2 ] _N_ #-}
+ atanh :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Fractional u0}}, u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0)) -> case u1 of { _ALG_ _TUP_19 (u2 :: {{Fractional u0}}) (u3 :: u0) (u4 :: u0 -> u0) (u5 :: u0 -> u0) (u6 :: u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: u0 -> u0) (ue :: u0 -> u0) (uf :: u0 -> u0) (ug :: u0 -> u0) (uh :: u0 -> u0) (ui :: u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) -> uk; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Floating u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Floating.atanh\"", u2 ] _N_ #-}
+class (Num a) => Fractional a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (/) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.(/)\"", u2, u3 ] _N_ #-}
+ recip :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ fromRational :: Ratio Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, u0 -> u0 -> u0, u0 -> u0, Ratio Integer -> u0)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Num u0}}) (u3 :: u0 -> u0 -> u0) (u4 :: u0 -> u0) (u5 :: Ratio Integer -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Fractional u0}}) (u2 :: Ratio Integer) -> _APP_ _TYAPP_ patError# { (Ratio Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Fractional.fromRational\"", u2 ] _N_ #-}
+class (Real a, Ix a) => Integral a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u3; _NO_DEFLT_ } _N_ #-} where
+ quot :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ rem :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ua [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ div :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> ug; _NO_DEFLT_ } _N_ #-}
+ mod :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 6 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> case case u1 of { _ALG_ _TUP_12 (u4 :: {{Real u0}}) (u5 :: {{Ix u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> (u0, u0)) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> Bool) (ud :: u0 -> Bool) (ue :: u0 -> Integer) (uf :: u0 -> Int) -> _APP_ ub [ u2, u3 ]; _NO_DEFLT_ } of { _ALG_ _TUP_2 (ug :: u0) (uh :: u0) -> uh; _NO_DEFLT_ } _N_ #-}
+ quotRem :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> (u0, u0)) } [ _NOREP_S_ "%DPreludeCore.Integral.quotRem\"", u2, u3 ] _N_ #-}
+ divMod :: a -> a -> (a, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 122 _N_ _S_ "S" _N_ _N_ #-}
+ even :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ odd :: a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
+ toInteger :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> uc; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.Integral.toInteger\"", u2 ] _N_ #-}
+ toInt :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Ix u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> (u0, u0), u0 -> u0 -> (u0, u0), u0 -> Bool, u0 -> Bool, u0 -> Integer, u0 -> Int)) -> case u1 of { _ALG_ _TUP_12 (u2 :: {{Real u0}}) (u3 :: {{Ix u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> (u0, u0)) (u9 :: u0 -> u0 -> (u0, u0)) (ua :: u0 -> Bool) (ub :: u0 -> Bool) (uc :: u0 -> Integer) (ud :: u0 -> Int) -> ud; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Integral.toInt\"", u2 ] _N_ #-}
+class (Ord a) => Ix a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u2; _NO_DEFLT_ } _N_ #-} where
+ range :: (a, a) -> [a]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> [u0]) } [ _NOREP_S_ "%DPreludeCore.Ix.range\"", u2 ] _N_ #-}
+ index :: (a, a) -> a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.Ix.index\"", u2, u3 ] _N_ #-}
+ inRange :: (a, a) -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Ord u0}}, (u0, u0) -> [u0], (u0, u0) -> u0 -> Int, (u0, u0) -> u0 -> Bool)) -> case u1 of { _ALG_ _TUP_4 (u2 :: {{Ord u0}}) (u3 :: (u0, u0) -> [u0]) (u4 :: (u0, u0) -> u0 -> Int) (u5 :: (u0, u0) -> u0 -> Bool) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ix u0}}) (u2 :: (u0, u0)) (u3 :: u0) -> _APP_ _TYAPP_ patError# { ((u0, u0) -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ix.inRange\"", u2, u3 ] _N_ #-}
+class (Eq a, Text a) => Num a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ (+) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(+)\"", u2, u3 ] _N_ #-}
+ (-) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> let {(ue :: u0) = _APP_ u9 [ u3 ]} in _APP_ u6 [ u2, ue ]; _NO_DEFLT_ } _N_ #-}
+ (*) :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.(*)\"", u2, u3 ] _N_ #-}
+ negate :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.negate\"", u2 ] _N_ #-}
+ abs :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.abs\"", u2 ] _N_ #-}
+ signum :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.signum\"", u2 ] _N_ #-}
+ fromInteger :: Integer -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Integer) -> _APP_ _TYAPP_ patError# { (Integer -> u0) } [ _NOREP_S_ "%DPreludeCore.Num.fromInteger\"", u2 ] _N_ #-}
+ fromInt :: Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, {{Text u0}}, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0, u0 -> u0, u0 -> u0, Integer -> u0, Int -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _IF_ARGS_ 1 2 CC 6 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: Int) -> let {(u4 :: Integer) = case u2 of { _ALG_ I# (u3 :: Int#) -> _#_ int2Integer# [] [u3]; _NO_DEFLT_ }} in case u1 of { _ALG_ _TUP_10 (u5 :: {{Eq u0}}) (u6 :: {{Text u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: u0 -> u0) (ud :: Integer -> u0) (ue :: Int -> u0) -> _APP_ ud [ u4 ]; _NO_DEFLT_ } _N_ #-}
+class (Eq a) => Ord a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u2; _NO_DEFLT_ } _N_ #-} where
+ (<) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ (<=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> u0 -> Bool) } [ _NOREP_S_ "%DPreludeCore.Ord.(<=)\"", u2, u3 ] _N_ #-}
+ (>=) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u6 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ (>) :: a -> a -> Bool
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Ord u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_8 (u4 :: {{Eq u0}}) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> Bool) (u8 :: u0 -> u0 -> Bool) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> _CMP_TAG) -> _APP_ u5 [ u3, u2 ]; _NO_DEFLT_ } _N_ #-}
+ max :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ min :: a -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+ _tagCmp :: a -> a -> _CMP_TAG
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Eq u0}}, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> Bool, u0 -> u0 -> u0, u0 -> u0 -> u0, u0 -> u0 -> _CMP_TAG)) -> case u1 of { _ALG_ _TUP_8 (u2 :: {{Eq u0}}) (u3 :: u0 -> u0 -> Bool) (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) (u6 :: u0 -> u0 -> Bool) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> _CMP_TAG) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Num a, Enum a) => Real a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u3; _NO_DEFLT_ } _N_ #-} where
+ toRational :: a -> Ratio Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Num u0}}, {{Enum u0}}, u0 -> Ratio Integer)) -> case u1 of { _ALG_ _TUP_3 (u2 :: {{Num u0}}) (u3 :: {{Enum u0}}) (u4 :: u0 -> Ratio Integer) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{Real u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Ratio Integer) } [ _NOREP_S_ "%DPreludeCore.Real.toRational\"", u2 ] _N_ #-}
+class (RealFrac a, Floating a) => RealFloat a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u3; _NO_DEFLT_ } _N_ #-} where
+ floatRadix :: a -> Integer
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Integer) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRadix\"", u2 ] _N_ #-}
+ floatDigits :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> Int) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatDigits\"", u2 ] _N_ #-}
+ floatRange :: a -> (Int, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u6; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Int, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.floatRange\"", u2 ] _N_ #-}
+ decodeFloat :: a -> (Integer, Int)
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u7; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 2 XX 3 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (Integer, Int)) } [ _NOREP_S_ "%DPreludeCore.RealFloat.decodeFloat\"", u2 ] _N_ #-}
+ encodeFloat :: Integer -> Int -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u8; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{RealFloat u0}}) (u2 :: Integer) (u3 :: Int) -> _APP_ _TYAPP_ patError# { (Integer -> Int -> u0) } [ _NOREP_S_ "%DPreludeCore.RealFloat.encodeFloat\"", u2, u3 ] _N_ #-}
+ exponent :: a -> Int
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> u9; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ significand :: a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ua; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+ scaleFloat :: Int -> a -> a
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{RealFrac u0}}, {{Floating u0}}, u0 -> Integer, u0 -> Int, u0 -> (Int, Int), u0 -> (Integer, Int), Integer -> Int -> u0, u0 -> Int, u0 -> u0, Int -> u0 -> u0)) -> case u1 of { _ALG_ _TUP_10 (u2 :: {{RealFrac u0}}) (u3 :: {{Floating u0}}) (u4 :: u0 -> Integer) (u5 :: u0 -> Int) (u6 :: u0 -> (Int, Int)) (u7 :: u0 -> (Integer, Int)) (u8 :: Integer -> Int -> u0) (u9 :: u0 -> Int) (ua :: u0 -> u0) (ub :: Int -> u0 -> u0) -> ub; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+class (Real a, Fractional a) => RealFrac a {-# GHC_PRAGMA {-superdicts-} _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u2; _NO_DEFLT_ } _N_, _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) -> case u1 of { _ALG_ _TUP_7 (u2 :: {{Real u0}}) (u3 :: {{Fractional u0}}) (u4 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u5 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> u3; _NO_DEFLT_ } _N_ #-} where
+ properFraction :: Integral b => a -> (b, a)
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u6 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 002 _N_ _S_ _!_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Integral u1}}) (u4 :: u0) -> _APP_ _TYAPP_ patError# { (u0 -> (u1, u0)) } [ _NOREP_S_ "%DPreludeCore.RealFrac.properFraction\"", u4 ] _N_ #-}
+ truncate :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u7 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ round :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u8 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ ceiling :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ u9 { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+ floor :: Integral b => a -> b
+ {-# GHC_PRAGMA {-meth-} _A_ 2 _U_ 122 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 CX 3 _/\_ u0 u1 -> \ (u2 :: ({{Real u0}}, {{Fractional u0}}, (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> (z$z1, u0)), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1), (_forall_ z$z1 =>{{Integral z$z1}} -> u0 -> z$z1))) (u3 :: {{Integral u1}}) -> case u2 of { _ALG_ _TUP_7 (u4 :: {{Real u0}}) (u5 :: {{Fractional u0}}) (u6 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> _APP_ _TYAPP_ ua { u1 } [ u3 ]; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 2 _U_ 122 _N_ _S_ "SL" _N_ _N_ #-}
+class Text a where
+ readsPrec :: Int -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u2; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 3 _U_ 022 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 3 XXX 4 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(u0, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u2, u3 ] _N_ #-}
+ showsPrec :: Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 1222 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u3; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 4 _U_ 0222 _N_ _S_ _!_ _F_ _IF_ARGS_ 1 4 XXXX 5 _/\_ u0 -> \ (u1 :: {{Text u0}}) (u2 :: Int) (u3 :: u0) (u4 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> u0 -> [Char] -> [Char]) } [ _NOREP_S_ "%DPreludeCore.Text.showsPrec\"", u2, u3, u4 ] _N_ #-}
+ readList :: [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 12 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u4; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _readList _N_ #-}
+ showList :: [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA {-meth-} _A_ 1 _U_ 122 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: (Int -> [Char] -> [(u0, [Char])], Int -> u0 -> [Char] -> [Char], [Char] -> [([u0], [Char])], [u0] -> [Char] -> [Char])) -> case u1 of { _ALG_ _TUP_4 (u2 :: Int -> [Char] -> [(u0, [Char])]) (u3 :: Int -> u0 -> [Char] -> [Char]) (u4 :: [Char] -> [([u0], [Char])]) (u5 :: [u0] -> [Char] -> [Char]) -> u5; _NO_DEFLT_ } _N_
+ {-defm-} _A_ 1 _U_ 212 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _ORIG_ PreludeCore _showList _N_ #-}
+class _CCallable a
+class _CReturnable a
+data Array a b {-# GHC_PRAGMA _Array (a, a) (Array# b) #-}
+data Assoc a b = (:=) a b
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data Bin
+data Complex a = (:+) a a
+data _MutableArray a b c {-# GHC_PRAGMA _MutableArray (b, b) (MutableArray# a c) #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+data _PackedString {-# GHC_PRAGMA _PS ByteArray# Int# Bool | _CPS Addr# Int# #-}
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+data _FILE {-# GHC_PRAGMA _FILE Addr# #-}
+instance Enum ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord ()}}, (() -> [()]), (() -> () -> [()]), (() -> () -> [()]), (() -> () -> () -> [()])] [_DFUN_ Ord (()), _CONSTM_ Enum enumFrom (()), _CONSTM_ Enum enumFromThen (()), _CONSTM_ Enum enumFromTo (()), _CONSTM_ Enum enumFromThenTo (())] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromTo = _A_ 2 _U_ 21 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> let {(u2 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u2]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 211 _N_ _S_ "EEE" _F_ _IF_ARGS_ 0 3 CCC 8 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> let {(u3 :: [()]) = _!_ _NIL_ [()] []} in _!_ (:) [()] [u0, u3]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Enum Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Bool}}, (Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> [Bool]), (Bool -> Bool -> Bool -> [Bool])] [_DFUN_ Ord (Bool), _CONSTM_ Enum enumFrom (Bool), _CONSTM_ Enum enumFromThen (Bool), _CONSTM_ Enum enumFromTo (Bool), _CONSTM_ Enum enumFromThenTo (Bool)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _S_ "E" _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Char}}, (Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> [Char]), (Char -> Char -> Char -> [Char])] [_DFUN_ Ord (Char), _CONSTM_ Enum enumFrom (Char), _CONSTM_ Enum enumFromThen (Char), _CONSTM_ Enum enumFromTo (Char), _CONSTM_ Enum enumFromThenTo (Char)] _N_
+ enumFrom = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Double}}, (Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> [Double]), (Double -> Double -> Double -> [Double])] [_DFUN_ Ord (Double), _CONSTM_ Enum enumFrom (Double), _CONSTM_ Enum enumFromThen (Double), _CONSTM_ Enum enumFromTo (Double), _CONSTM_ Enum enumFromThenTo (Double)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Float}}, (Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> [Float]), (Float -> Float -> Float -> [Float])] [_DFUN_ Ord (Float), _CONSTM_ Enum enumFrom (Float), _CONSTM_ Enum enumFromThen (Float), _CONSTM_ Enum enumFromTo (Float), _CONSTM_ Enum enumFromThenTo (Float)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Int}}, (Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> [Int]), (Int -> Int -> Int -> [Int])] [_DFUN_ Ord (Int), _CONSTM_ Enum enumFrom (Int), _CONSTM_ Enum enumFromThen (Int), _CONSTM_ Enum enumFromTo (Int), _CONSTM_ Enum enumFromThenTo (Int)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ \ (u0 :: Int) -> _LETREC_ {(u1 :: Int -> [Int]) = \ (u2 :: Int) -> let {(u6 :: [Int]) = let {(u5 :: Int) = case u2 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u3, 1#] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }} in _APP_ u1 [ u5 ]} in _!_ (:) [Int] [u2, u6]} in _APP_ u1 [ u0 ] _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 12 _N_ _S_ "SS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> _LETREC_ {(u3 :: Int# -> [Int]) = \ (u4 :: Int#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ leInt# [] [u4, u5] of { _ALG_ True -> let {(u7 :: [Int]) = case _#_ plusInt# [] [u4, 1#] of { _PRIM_ (u6 :: Int#) -> _APP_ u3 [ u6 ] }} in let {(u8 :: Int) = _!_ I# [] [u4]} in _!_ (:) [Int] [u8, u7]; False -> _!_ _NIL_ [Int] []; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ u2 ]; _NO_DEFLT_ } _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Enum Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord Integer}}, (Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> [Integer]), (Integer -> Integer -> Integer -> [Integer])] [_DFUN_ Ord (Integer), _CONSTM_ Enum enumFrom (Integer), _CONSTM_ Enum enumFromThen (Integer), _CONSTM_ Enum enumFromTo (Integer), _CONSTM_ Enum enumFromThenTo (Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Enum (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Enum (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 6 _!_ _TUP_5 [{{Ord (Ratio Integer)}}, (Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> [Ratio Integer]), (Ratio Integer -> Ratio Integer -> Ratio Integer -> [Ratio Integer])] [_DFUN_ Ord (Ratio Integer), _CONSTM_ Enum enumFrom (Ratio Integer), _CONSTM_ Enum enumFromThen (Ratio Integer), _CONSTM_ Enum enumFromTo (Ratio Integer), _CONSTM_ Enum enumFromThenTo (Ratio Integer)] _N_
+ enumFrom = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ enumFromThen = _A_ 2 _U_ 21 _N_ _N_ _N_ _N_,
+ enumFromTo = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ enumFromThenTo = _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Eq ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(() -> () -> Bool), (() -> () -> Bool)] [_CONSTM_ Eq (==) (()), _CONSTM_ Eq (/=) (())] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Eq a, Eq b) => Eq (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c) => Eq (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1111 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11111 _N_ _N_ _N_ _N_ #-}
+instance Eq (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool)] [_CONSTM_ Eq (==) ((Int, Int)), _CONSTM_ Eq (/=) ((Int, Int))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Int#) (u1 :: Int) (u2 :: Int#) (u3 :: Int) -> case _#_ eqInt# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> _#_ eqInt# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: (Int, Int)) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u1 of { _ALG_ _TUP_2 (u5 :: Int) (u6 :: Int) -> case u5 of { _ALG_ I# (u7 :: Int#) -> case _#_ eqInt# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ I# (u8 :: Int#) -> case u6 of { _ALG_ I# (u9 :: Int#) -> _#_ eqInt# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool)] [_CONSTM_ Eq (==) ((_PackedString, _PackedString)), _CONSTM_ Eq (/=) ((_PackedString, _PackedString))] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Eq b) => Eq (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Bool -> Bool -> Bool), (Bool -> Bool -> Bool)] [_CONSTM_ Eq (==) (Bool), _CONSTM_ Eq (/=) (Bool)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> case u1 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ }; False -> u1; _NO_DEFLT_ } _N_ #-}
+instance Eq Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Char -> Char -> Bool), (Char -> Char -> Bool)] [_CONSTM_ Eq (==) (Char), _CONSTM_ Eq (/=) (Char)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ eqChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ eqChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ neChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ neChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq a => Eq (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Eq (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Complex Double -> Complex Double -> Bool), (Complex Double -> Complex Double -> Bool)] [_CONSTM_ Eq (==) (Complex Double), _CONSTM_ Eq (/=) (Complex Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ eqDouble# [] [u0, u2] of { _ALG_ True -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ eqDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ eqDouble# [] [u4, u7] of { _ALG_ True -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ eqDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _F_ _IF_ARGS_ 0 4 XCXC 7 \ (u0 :: Double#) (u1 :: Double) (u2 :: Double#) (u3 :: Double) -> case _#_ neDouble# [] [u0, u2] of { _ALG_ True -> _!_ True [] []; False -> case u1 of { _ALG_ D# (u4 :: Double#) -> case u3 of { _ALG_ D# (u5 :: Double#) -> _#_ neDouble# [] [u4, u5]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u2 of { _ALG_ D# (u4 :: Double#) -> case u1 of { _ALG_ (:+) (u5 :: Double) (u6 :: Double) -> case u5 of { _ALG_ D# (u7 :: Double#) -> case _#_ neDouble# [] [u4, u7] of { _ALG_ True -> _!_ True [] []; False -> case u3 of { _ALG_ D# (u8 :: Double#) -> case u6 of { _ALG_ D# (u9 :: Double#) -> _#_ neDouble# [] [u8, u9]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Double -> Double -> Bool), (Double -> Double -> Bool)] [_CONSTM_ Eq (==) (Double), _CONSTM_ Eq (/=) (Double)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ eqDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ eqDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ neDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ neDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Float -> Float -> Bool), (Float -> Float -> Bool)] [_CONSTM_ Eq (==) (Float), _CONSTM_ Eq (/=) (Float)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ eqFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ eqFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ neFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ neFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Int -> Int -> Bool), (Int -> Int -> Bool)] [_CONSTM_ Eq (==) (Int), _CONSTM_ Eq (/=) (Int)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ eqInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ eqInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ neInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ neInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Integer -> Integer -> Bool), (Integer -> Integer -> Bool)] [_CONSTM_ Eq (==) (Integer), _CONSTM_ Eq (/=) (Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ True [] []; (u8 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ 0# -> _!_ False [] []; (u7 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ 0# -> _!_ False [] []; (u8 :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Eq (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool)] [_CONSTM_ Eq (==) (Ratio Integer), _CONSTM_ Eq (/=) (Ratio Integer)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Ratio Integer) -> case u4 of { _ALG_ (:%) (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ False [] []; (ug :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ True [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance Eq a => Eq [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Eq [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool)] [_CONSTM_ Eq (==) ([Char]), _CONSTM_ Eq (/=) ([Char])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool)] [_CONSTM_ Eq (==) ([Int]), _CONSTM_ Eq (/=) ([Int])] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool)] [_CONSTM_ Eq (==) (_Addr), _CONSTM_ Eq (/=) (_Addr)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ eqAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ eqAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ neAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ neAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Eq _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool)] [_CONSTM_ Eq (==) (_PackedString), _CONSTM_ Eq (/=) (_PackedString)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(_Word -> _Word -> Bool), (_Word -> _Word -> Bool)] [_CONSTM_ Eq (==) (_Word), _CONSTM_ Eq (/=) (_Word)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ eqWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ eqWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ neWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ neWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance RealFloat a => Floating (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Floating (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional (Complex Double)}}, (Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double), (Complex Double -> Complex Double)] [_DFUN_ Fractional (Complex Double), _CONSTM_ Floating pi (Complex Double), _CONSTM_ Floating exp (Complex Double), _CONSTM_ Floating log (Complex Double), _CONSTM_ Floating sqrt (Complex Double), _CONSTM_ Floating (**) (Complex Double), _CONSTM_ Floating logBase (Complex Double), _CONSTM_ Floating sin (Complex Double), _CONSTM_ Floating cos (Complex Double), _CONSTM_ Floating tan (Complex Double), _CONSTM_ Floating asin (Complex Double), _CONSTM_ Floating acos (Complex Double), _CONSTM_ Floating atan (Complex Double), _CONSTM_ Floating sinh (Complex Double), _CONSTM_ Floating cosh (Complex Double), _CONSTM_ Floating tanh (Complex Double), _CONSTM_ Floating asinh (Complex Double), _CONSTM_ Floating acosh (Complex Double), _CONSTM_ Floating atanh (Complex Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _N_ _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ log = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ (**) = _A_ 2 _U_ 21 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Floating Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Double}}, Double, (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double)] [_DFUN_ Fractional (Double), _CONSTM_ Floating pi (Double), _CONSTM_ Floating exp (Double), _CONSTM_ Floating log (Double), _CONSTM_ Floating sqrt (Double), _CONSTM_ Floating (**) (Double), _CONSTM_ Floating logBase (Double), _CONSTM_ Floating sin (Double), _CONSTM_ Floating cos (Double), _CONSTM_ Floating tan (Double), _CONSTM_ Floating asin (Double), _CONSTM_ Floating acos (Double), _CONSTM_ Floating atan (Double), _CONSTM_ Floating sinh (Double), _CONSTM_ Floating cosh (Double), _CONSTM_ Floating tanh (Double), _CONSTM_ Floating asinh (Double), _CONSTM_ Floating acosh (Double), _CONSTM_ Floating atanh (Double)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ D# [] [3.1415926535897931##] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ expDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ expDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sqrtDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sqrtDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ powerDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ powerDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ logDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> case _#_ logDouble# [] [u0] of { _PRIM_ (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case _#_ logDouble# [] [u2] of { _PRIM_ (u3 :: Double#) -> case u0 of { _ALG_ D# (u4 :: Double#) -> case _#_ logDouble# [] [u4] of { _PRIM_ (u5 :: Double#) -> case _#_ divideDouble# [] [u3, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] } }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ cosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ cosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ asinDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ asinDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ acosDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ acosDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ atanDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ atanDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ sinhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ sinhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ coshDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ coshDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ tanhDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ tanhDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Floating Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 20 _!_ _TUP_19 [{{Fractional Float}}, Float, (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float)] [_DFUN_ Fractional (Float), _CONSTM_ Floating pi (Float), _CONSTM_ Floating exp (Float), _CONSTM_ Floating log (Float), _CONSTM_ Floating sqrt (Float), _CONSTM_ Floating (**) (Float), _CONSTM_ Floating logBase (Float), _CONSTM_ Floating sin (Float), _CONSTM_ Floating cos (Float), _CONSTM_ Floating tan (Float), _CONSTM_ Floating asin (Float), _CONSTM_ Floating acos (Float), _CONSTM_ Floating atan (Float), _CONSTM_ Floating sinh (Float), _CONSTM_ Floating cosh (Float), _CONSTM_ Floating tanh (Float), _CONSTM_ Floating asinh (Float), _CONSTM_ Floating acosh (Float), _CONSTM_ Floating atanh (Float)] _N_
+ pi = _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ F# [] [3.1415926535897931#] _N_,
+ exp = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ expFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ expFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ log = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ logFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ logFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sqrt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sqrtFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sqrtFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ (**) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ powerFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ powerFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ logBase = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ sin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ cosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ cosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asin = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ asinFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ asinFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ acos = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ acosFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ acosFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ atan = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ atanFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ atanFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ sinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ sinhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ sinhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ cosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ coshFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ coshFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ tanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ tanhFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ tanhFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ asinh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ acosh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ atanh = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance RealFloat a => Fractional (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Complex Double)}}, (Complex Double -> Complex Double -> Complex Double), (Complex Double -> Complex Double), (Ratio Integer -> Complex Double)] [_DFUN_ Num (Complex Double), _CONSTM_ Fractional (/) (Complex Double), _CONSTM_ Fractional recip (Complex Double), _CONSTM_ Fractional fromRational (Complex Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Double}}, (Double -> Double -> Double), (Double -> Double), (Ratio Integer -> Double)] [_DFUN_ Num (Double), _CONSTM_ Fractional (/) (Double), _CONSTM_ Fractional recip (Double), _CONSTM_ Fractional fromRational (Double)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ divideDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ divideDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ divideDouble# [] [1.0000000000000000##, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Fractional Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num Float}}, (Float -> Float -> Float), (Float -> Float), (Ratio Integer -> Float)] [_DFUN_ Num (Float), _CONSTM_ Fractional (/) (Float), _CONSTM_ Fractional recip (Float), _CONSTM_ Fractional fromRational (Float)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ divideFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ divideFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ recip = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ fromRational = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Fractional (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Fractional (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Num (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _CONSTM_ Fractional (/) (Ratio Integer), _CONSTM_ Fractional recip (Ratio Integer), _CONSTM_ Fractional fromRational (Ratio Integer)] _N_
+ (/) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(U(PPP)L)" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ recip = _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance Integral Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Int}}, {{Ix Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> (Int, Int)), (Int -> Int -> (Int, Int)), (Int -> Bool), (Int -> Bool), (Int -> Integer), (Int -> Int)] [_DFUN_ Real (Int), _DFUN_ Ix (Int), _CONSTM_ Integral quot (Int), _CONSTM_ Integral rem (Int), _CONSTM_ Integral div (Int), _CONSTM_ Integral mod (Int), _CONSTM_ Integral quotRem (Int), _CONSTM_ Integral divMod (Int), _CONSTM_ Integral even (Int), _CONSTM_ Integral odd (Int), _CONSTM_ Integral toInteger (Int), _CONSTM_ Integral toInt (Int)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ quotInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.quot{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ quotInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int#) (u1 :: Int#) -> case u1 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u2 :: Int#) -> case _#_ remInt# [] [u0, u1] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } } _N_} _F_ _IF_ARGS_ 0 2 CC 7 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u2 of { _PRIM_ 0# -> _APP_ _TYAPP_ error { Int } [ _NOREP_S_ "Integral.Int.rem{PreludeCore}: divide by 0\n" ]; (u3 :: Int#) -> case u0 of { _ALG_ I# (u4 :: Int#) -> case _#_ remInt# [] [u4, u2] of { _PRIM_ (u5 :: Int#) -> _!_ I# [] [u5] }; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ mod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Integral Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 13 _!_ _TUP_12 [{{Real Integer}}, {{Ix Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> (Integer, Integer)), (Integer -> Integer -> (Integer, Integer)), (Integer -> Bool), (Integer -> Bool), (Integer -> Integer), (Integer -> Int)] [_DFUN_ Real (Integer), _DFUN_ Ix (Integer), _CONSTM_ Integral quot (Integer), _CONSTM_ Integral rem (Integer), _CONSTM_ Integral div (Integer), _CONSTM_ Integral mod (Integer), _CONSTM_ Integral quotRem (Integer), _CONSTM_ Integral divMod (Integer), _CONSTM_ Integral even (Integer), _CONSTM_ Integral odd (Integer), _CONSTM_ Integral toInteger (Integer), _CONSTM_ Integral toInt (Integer)] _N_
+ quot = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ rem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral quotRem (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral quotRem (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ div = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u4; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u2; _NO_DEFLT_ } _N_,
+ mod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 7 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case _APP_ _WRKR_ _CONSTM_ Integral divMod (Integer) [ u0, u1, u2, u3 ] of { _ALG_ _TUP_2 (u4 :: Integer) (u5 :: Integer) -> u5; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Integer) (u1 :: Integer) -> case _APP_ _CONSTM_ Integral divMod (Integer) [ u0, u1 ] of { _ALG_ _TUP_2 (u2 :: Integer) (u3 :: Integer) -> u3; _NO_DEFLT_ } _N_,
+ quotRem = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ divMod = _A_ 2 _U_ 12 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ even = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ odd = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ toInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ toInt = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ #-}
+instance Ix ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord ()}}, (((), ()) -> [()]), (((), ()) -> () -> Int), (((), ()) -> () -> Bool)] [_DFUN_ Ord (()), _CONSTM_ Ix range (()), _CONSTM_ Ix index (()), _CONSTM_ Ix inRange (())] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 5 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ I# [] [0#]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(EE)E" {_A_ 3 _U_ 111 _N_ _N_ _F_ _IF_ARGS_ 0 3 CCC 4 \ (u0 :: ()) (u1 :: ()) (u2 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> case u2 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: ((), ())) (u1 :: ()) -> case u0 of { _ALG_ _TUP_2 (u2 :: ()) (u3 :: ()) -> case u2 of { _ALG_ _TUP_0 -> case u3 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ix a, Ix b) => Ix (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c) => Ix (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d) => Ix (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Ix b, Ix c, Ix d, Ix e) => Ix (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 222222 _N_ _N_ _N_ _N_ #-}
+instance Ix (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord (Int, Int)}}, (((Int, Int), (Int, Int)) -> [(Int, Int)]), (((Int, Int), (Int, Int)) -> (Int, Int) -> Int), (((Int, Int), (Int, Int)) -> (Int, Int) -> Bool)] [_DFUN_ Ord ((Int, Int)), _CONSTM_ Ix range ((Int, Int)), _CONSTM_ Ix index ((Int, Int)), _CONSTM_ Ix inRange ((Int, Int))] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(SS)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)U(P))" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(SS)U(U(P)L)" {_A_ 4 _U_ 1121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ix b) => Ix (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ix Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Bool}}, ((Bool, Bool) -> [Bool]), ((Bool, Bool) -> Bool -> Int), ((Bool, Bool) -> Bool -> Bool)] [_DFUN_ Ord (Bool), _CONSTM_ Ix range (Bool), _CONSTM_ Ix index (Bool), _CONSTM_ Ix inRange (Bool)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(EE)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(EA)E" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 12 _N_ _S_ "U(EL)E" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Char}}, ((Char, Char) -> [Char]), ((Char, Char) -> Char -> Int), ((Char, Char) -> Char -> Bool)] [_DFUN_ Ord (Char), _CONSTM_ Ix range (Char), _CONSTM_ Ix index (Char), _CONSTM_ Ix inRange (Char)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Char) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Char, Char)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Char) (u2 :: Char) -> _APP_ _CONSTM_ Enum enumFromTo (Char) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ix Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Int}}, ((Int, Int) -> [Int]), ((Int, Int) -> Int -> Int), ((Int, Int) -> Int -> Bool)] [_DFUN_ Ord (Int), _CONSTM_ Ix range (Int), _CONSTM_ Ix index (Int), _CONSTM_ Ix inRange (Int)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ index = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: Int#) -> case _#_ leInt# [] [u0, u2] of { _ALG_ True -> _#_ leInt# [] [u2, u1]; False -> _!_ False [] []; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ \ (u0 :: (Int, Int)) (u1 :: Int) -> case u0 of { _ALG_ _TUP_2 (u2 :: Int) (u3 :: Int) -> case u2 of { _ALG_ I# (u4 :: Int#) -> case u3 of { _ALG_ I# (u5 :: Int#) -> case u1 of { _ALG_ I# (u6 :: Int#) -> case _#_ leInt# [] [u4, u6] of { _ALG_ True -> _#_ leInt# [] [u6, u5]; False -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance Ix Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [{{Ord Integer}}, ((Integer, Integer) -> [Integer]), ((Integer, Integer) -> Integer -> Int), ((Integer, Integer) -> Integer -> Bool)] [_DFUN_ Ord (Integer), _CONSTM_ Ix range (Integer), _CONSTM_ Ix index (Integer), _CONSTM_ Ix inRange (Integer)] _N_
+ range = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Enum enumFromTo (Integer) _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: (Integer, Integer)) -> case u0 of { _ALG_ _TUP_2 (u1 :: Integer) (u2 :: Integer) -> _APP_ _CONSTM_ Enum enumFromTo (Integer) [ u1, u2 ]; _NO_DEFLT_ } _N_,
+ index = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ inRange = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(PPP)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: Integer) -> case u4 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> case _#_ leInt# [] [u8, 0#] of { _ALG_ True -> case u3 of { _ALG_ J# (u9 :: Int#) (ua :: Int#) (ub :: ByteArray#) -> case _#_ cmpInteger# [] [u5, u6, u7, u9, ua, ub] of { _PRIM_ (uc :: Int#) -> _#_ leInt# [] [uc, 0#] }; _NO_DEFLT_ }; False -> _!_ False [] []; _NO_DEFLT_ } }; _NO_DEFLT_ } _N_} _N_ _N_ #-}
+instance RealFloat a => Num (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Complex Double)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 1111 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LL)U(LL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 11 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(U(P)L)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Num Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Double}}, {{Text Double}}, (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double), (Double -> Double), (Double -> Double), (Integer -> Double), (Int -> Double)] [_DFUN_ Eq (Double), _DFUN_ Text (Double), _CONSTM_ Num (+) (Double), _CONSTM_ Num (-) (Double), _CONSTM_ Num (*) (Double), _CONSTM_ Num negate (Double), _CONSTM_ Num abs (Double), _CONSTM_ Num signum (Double), _CONSTM_ Num fromInteger (Double), _CONSTM_ Num fromInt (Double)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ plusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ plusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ timesDouble# [] [u0, u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> case _#_ timesDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ negateDouble# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ negateDouble# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Float}}, {{Text Float}}, (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float), (Float -> Float), (Float -> Float), (Integer -> Float), (Int -> Float)] [_DFUN_ Eq (Float), _DFUN_ Text (Float), _CONSTM_ Num (+) (Float), _CONSTM_ Num (-) (Float), _CONSTM_ Num (*) (Float), _CONSTM_ Num negate (Float), _CONSTM_ Num abs (Float), _CONSTM_ Num signum (Float), _CONSTM_ Num fromInteger (Float), _CONSTM_ Num fromInt (Float)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ plusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ plusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ minusFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ minusFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Float#) (u1 :: Float#) -> case _#_ timesFloat# [] [u0, u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> case _#_ timesFloat# [] [u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ negateFloat# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ negateFloat# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeFloat# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Float#) -> _!_ F# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeFloat# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+instance Num Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Int}}, {{Text Int}}, (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int), (Int -> Int), (Int -> Int), (Integer -> Int), (Int -> Int)] [_DFUN_ Eq (Int), _DFUN_ Text (Int), _CONSTM_ Num (+) (Int), _CONSTM_ Num (-) (Int), _CONSTM_ Num (*) (Int), _CONSTM_ Num negate (Int), _CONSTM_ Num abs (Int), _CONSTM_ Num signum (Int), _CONSTM_ Num fromInteger (Int), _CONSTM_ Num fromInt (Int)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ plusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ plusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ timesInt# [] [u0, u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> case _#_ timesInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ negateInt# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> u0 _N_ #-}
+instance Num Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq Integer}}, {{Text Integer}}, (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Integer -> Integer), (Int -> Integer)] [_DFUN_ Eq (Integer), _DFUN_ Text (Integer), _CONSTM_ Num (+) (Integer), _CONSTM_ Num (-) (Integer), _CONSTM_ Num (*) (Integer), _CONSTM_ Num negate (Integer), _CONSTM_ Num abs (Integer), _CONSTM_ Num signum (Integer), _CONSTM_ Num fromInteger (Integer), _CONSTM_ Num fromInt (Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ plusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ plusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ minusInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ minusInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> _#_ timesInteger# [] [u0, u1, u2, u4, u5, u6]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 6 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> _#_ timesInteger# [] [u2, u3, u4, u5, u6, u7]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _#_ negateInteger# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 C 5 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> _#_ negateInteger# [] [u1, u2, u3]; _NO_DEFLT_ } _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 4 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> _!_ J# [] [u0, u1, u2] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Integer) -> u0 _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ #-}
+instance Integral a => Num (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Num (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{Eq (Ratio Integer)}}, {{Text (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer), (Integer -> Ratio Integer), (Int -> Ratio Integer)] [_DFUN_ Eq (Ratio Integer), _DFUN_ Text (Ratio Integer), _CONSTM_ Num (+) (Ratio Integer), _CONSTM_ Num (-) (Ratio Integer), _CONSTM_ Num (*) (Ratio Integer), _CONSTM_ Num negate (Ratio Integer), _CONSTM_ Num abs (Ratio Integer), _CONSTM_ Num signum (Ratio Integer), _CONSTM_ Num fromInteger (Ratio Integer), _CONSTM_ Num fromInt (Ratio Integer)] _N_
+ (+) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (-) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 12221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (*) = _A_ 2 _U_ 11 _N_ _S_ "U(LU(PPP))U(LU(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ negate = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ abs = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ signum = _A_ 1 _U_ 1 _N_ _S_ "U(LA)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_,
+ fromInteger = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ fromInt = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ()}}, (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> Bool), (() -> () -> ()), (() -> () -> ()), (() -> () -> _CMP_TAG)] [_DFUN_ Eq (()), _CONSTM_ Ord (<) (()), _CONSTM_ Ord (<=) (()), _CONSTM_ Ord (>=) (()), _CONSTM_ Ord (>) (()), _CONSTM_ Ord max (()), _CONSTM_ Ord min (()), _CONSTM_ Ord _tagCmp (())] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ True [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ False [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CX 2 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> u1; _NO_DEFLT_ } _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: ()) (u1 :: ()) -> case u0 of { _ALG_ _TUP_0 -> case u1 of { _ALG_ _TUP_0 -> _!_ _EQ [] []; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+instance (Ord a, Ord b) => Ord (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c) => Ord (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 1112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 11112 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 6 _U_ 111112 _N_ _N_ _N_ _N_ #-}
+instance Ord (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Int, Int)}}, ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> Bool), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> (Int, Int)), ((Int, Int) -> (Int, Int) -> _CMP_TAG)] [_DFUN_ Eq ((Int, Int)), _CONSTM_ Ord (<) ((Int, Int)), _CONSTM_ Ord (<=) ((Int, Int)), _CONSTM_ Ord (>=) ((Int, Int)), _CONSTM_ Ord (>) ((Int, Int)), _CONSTM_ Ord max ((Int, Int)), _CONSTM_ Ord min ((Int, Int)), _CONSTM_ Ord _tagCmp ((Int, Int))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(U(P)L)" {_A_ 4 _U_ 2121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (_PackedString, _PackedString)}}, ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> Bool), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> (_PackedString, _PackedString)), ((_PackedString, _PackedString) -> (_PackedString, _PackedString) -> _CMP_TAG)] [_DFUN_ Eq ((_PackedString, _PackedString)), _CONSTM_ Ord (<) ((_PackedString, _PackedString)), _CONSTM_ Ord (<=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>=) ((_PackedString, _PackedString)), _CONSTM_ Ord (>) ((_PackedString, _PackedString)), _CONSTM_ Ord max ((_PackedString, _PackedString)), _CONSTM_ Ord min ((_PackedString, _PackedString)), _CONSTM_ Ord _tagCmp ((_PackedString, _PackedString))] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(SL)U(SL)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Ix a, Ord b) => Ord (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 112 _N_ _N_ _N_ _N_ #-}
+instance Ord Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Bool}}, (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> Bool), (Bool -> Bool -> _CMP_TAG)] [_DFUN_ Eq (Bool), _CONSTM_ Ord (<) (Bool), _CONSTM_ Ord (<=) (Bool), _CONSTM_ Ord (>=) (Bool), _CONSTM_ Ord (>) (Bool), _CONSTM_ Ord max (Bool), _CONSTM_ Ord min (Bool), _CONSTM_ Ord _tagCmp (Bool)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
+instance Ord Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Char}}, (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Bool), (Char -> Char -> Char), (Char -> Char -> Char), (Char -> Char -> _CMP_TAG)] [_DFUN_ Eq (Char), _CONSTM_ Ord (<) (Char), _CONSTM_ Ord (<=) (Char), _CONSTM_ Ord (>=) (Char), _CONSTM_ Ord (>) (Char), _CONSTM_ Ord max (Char), _CONSTM_ Ord min (Char), _CONSTM_ Ord _tagCmp (Char)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ ltChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ ltChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ leChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ leChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ geChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ geChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Char#) (u1 :: Char#) -> _#_ gtChar# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Char) (u1 :: Char) -> case u0 of { _ALG_ C# (u2 :: Char#) -> case u1 of { _ALG_ C# (u3 :: Char#) -> _#_ gtChar# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Double}}, (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Bool), (Double -> Double -> Double), (Double -> Double -> Double), (Double -> Double -> _CMP_TAG)] [_DFUN_ Eq (Double), _CONSTM_ Ord (<) (Double), _CONSTM_ Ord (<=) (Double), _CONSTM_ Ord (>=) (Double), _CONSTM_ Ord (>) (Double), _CONSTM_ Ord max (Double), _CONSTM_ Ord min (Double), _CONSTM_ Ord _tagCmp (Double)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ ltDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ ltDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ leDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ leDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ geDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ geDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Double#) (u1 :: Double#) -> _#_ gtDouble# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Double) (u1 :: Double) -> case u0 of { _ALG_ D# (u2 :: Double#) -> case u1 of { _ALG_ D# (u3 :: Double#) -> _#_ gtDouble# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Float}}, (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Bool), (Float -> Float -> Float), (Float -> Float -> Float), (Float -> Float -> _CMP_TAG)] [_DFUN_ Eq (Float), _CONSTM_ Ord (<) (Float), _CONSTM_ Ord (<=) (Float), _CONSTM_ Ord (>=) (Float), _CONSTM_ Ord (>) (Float), _CONSTM_ Ord max (Float), _CONSTM_ Ord min (Float), _CONSTM_ Ord _tagCmp (Float)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ ltFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ ltFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ leFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ leFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ geFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ geFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Float#) (u1 :: Float#) -> _#_ gtFloat# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Float) (u1 :: Float) -> case u0 of { _ALG_ F# (u2 :: Float#) -> case u1 of { _ALG_ F# (u3 :: Float#) -> _#_ gtFloat# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Int}}, (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Bool), (Int -> Int -> Int), (Int -> Int -> Int), (Int -> Int -> _CMP_TAG)] [_DFUN_ Eq (Int), _CONSTM_ Ord (<) (Int), _CONSTM_ Ord (<=) (Int), _CONSTM_ Ord (>=) (Int), _CONSTM_ Ord (>) (Int), _CONSTM_ Ord max (Int), _CONSTM_ Ord min (Int), _CONSTM_ Ord _tagCmp (Int)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ ltInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ ltInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ leInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ leInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ geInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ geInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Int#) (u1 :: Int#) -> _#_ gtInt# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: Int) (u1 :: Int) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case u1 of { _ALG_ I# (u3 :: Int#) -> _#_ gtInt# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq Integer}}, (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Bool), (Integer -> Integer -> Integer), (Integer -> Integer -> Integer), (Integer -> Integer -> _CMP_TAG)] [_DFUN_ Eq (Integer), _CONSTM_ Ord (<) (Integer), _CONSTM_ Ord (<=) (Integer), _CONSTM_ Ord (>=) (Integer), _CONSTM_ Ord (>) (Integer), _CONSTM_ Ord max (Integer), _CONSTM_ Ord min (Integer), _CONSTM_ Ord _tagCmp (Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ ltInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ ltInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ leInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ leInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ geInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ geInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXC 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) -> case u3 of { _ALG_ J# (u4 :: Int#) (u5 :: Int#) (u6 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u4, u5, u6] of { _PRIM_ (u7 :: Int#) -> _#_ gtInt# [] [u7, 0#] }; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 2 CC 4 \ (u0 :: Integer) (u1 :: Integer) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ J# (u5 :: Int#) (u6 :: Int#) (u7 :: ByteArray#) -> case _#_ cmpInteger# [] [u2, u3, u4, u5, u6, u7] of { _PRIM_ (u8 :: Int#) -> _#_ gtInt# [] [u8, 0#] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Integral a => Ord (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Ord (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq (Ratio Integer)}}, (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Bool), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> Ratio Integer), (Ratio Integer -> Ratio Integer -> _CMP_TAG)] [_DFUN_ Eq (Ratio Integer), _CONSTM_ Ord (<) (Ratio Integer), _CONSTM_ Ord (<=) (Ratio Integer), _CONSTM_ Ord (>=) (Ratio Integer), _CONSTM_ Ord (>) (Ratio Integer), _CONSTM_ Ord max (Ratio Integer), _CONSTM_ Ord min (Ratio Integer), _CONSTM_ Ord _tagCmp (Ratio Integer)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)U(PPP))U(U(PPP)U(PPP))" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord a => Ord [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Ord [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Char]}}, ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> Bool), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> [Char]), ([Char] -> [Char] -> _CMP_TAG)] [_DFUN_ Eq ([Char]), _CONSTM_ Ord (<) ([Char]), _CONSTM_ Ord (<=) ([Char]), _CONSTM_ Ord (>=) ([Char]), _CONSTM_ Ord (>) ([Char]), _CONSTM_ Ord max ([Char]), _CONSTM_ Ord min ([Char]), _CONSTM_ Ord _tagCmp ([Char])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq [Int]}}, ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> Bool), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> [Int]), ([Int] -> [Int] -> _CMP_TAG)] [_DFUN_ Eq ([Int]), _CONSTM_ Ord (<) ([Int]), _CONSTM_ Ord (<=) ([Int]), _CONSTM_ Ord (>=) ([Int]), _CONSTM_ Ord (>) ([Int]), _CONSTM_ Ord max ([Int]), _CONSTM_ Ord min ([Int]), _CONSTM_ Ord _tagCmp ([Int])] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Addr}}, (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> Bool), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _Addr), (_Addr -> _Addr -> _CMP_TAG)] [_DFUN_ Eq (_Addr), _CONSTM_ Ord (<) (_Addr), _CONSTM_ Ord (<=) (_Addr), _CONSTM_ Ord (>=) (_Addr), _CONSTM_ Ord (>) (_Addr), _CONSTM_ Ord max (_Addr), _CONSTM_ Ord min (_Addr), _CONSTM_ Ord _tagCmp (_Addr)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ ltAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ ltAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ leAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ leAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ geAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ geAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Addr#) (u1 :: Addr#) -> _#_ gtAddr# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Addr) (u1 :: _Addr) -> case u0 of { _ALG_ A# (u2 :: Addr#) -> case u1 of { _ALG_ A# (u3 :: Addr#) -> _#_ gtAddr# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _PackedString}}, (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> Bool), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _PackedString), (_PackedString -> _PackedString -> _CMP_TAG)] [_DFUN_ Eq (_PackedString), _CONSTM_ Ord (<) (_PackedString), _CONSTM_ Ord (<=) (_PackedString), _CONSTM_ Ord (>=) (_PackedString), _CONSTM_ Ord (>) (_PackedString), _CONSTM_ Ord max (_PackedString), _CONSTM_ Ord min (_PackedString), _CONSTM_ Ord _tagCmp (_PackedString)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq _Word}}, (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> Bool), (_Word -> _Word -> _Word), (_Word -> _Word -> _Word), (_Word -> _Word -> _CMP_TAG)] [_DFUN_ Eq (_Word), _CONSTM_ Ord (<) (_Word), _CONSTM_ Ord (<=) (_Word), _CONSTM_ Ord (>=) (_Word), _CONSTM_ Ord (>) (_Word), _CONSTM_ Ord max (_Word), _CONSTM_ Ord min (_Word), _CONSTM_ Ord _tagCmp (_Word)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ ltWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ ltWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ leWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ leWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ geWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ geWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 1 \ (u0 :: Word#) (u1 :: Word#) -> _#_ gtWord# [] [u0, u1] _N_} _F_ _IF_ARGS_ 0 2 CC 3 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> _#_ gtWord# [] [u2, u3]; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ max = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Double}}, {{Enum Double}}, (Double -> Ratio Integer)] [_DFUN_ Num (Double), _DFUN_ Enum (Double), _CONSTM_ Real toRational (Double)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Float}}, {{Enum Float}}, (Float -> Ratio Integer)] [_DFUN_ Num (Float), _DFUN_ Enum (Float), _CONSTM_ Real toRational (Float)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Real Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Int}}, {{Enum Int}}, (Int -> Ratio Integer)] [_DFUN_ Num (Int), _DFUN_ Enum (Int), _CONSTM_ Real toRational (Int)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Real Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num Integer}}, {{Enum Integer}}, (Integer -> Ratio Integer)] [_DFUN_ Num (Integer), _DFUN_ Enum (Integer), _CONSTM_ Real toRational (Integer)] _N_
+ toRational = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Real (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 122 _N_ _N_ _N_ _N_ #-}
+instance Real (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 4 _!_ _TUP_3 [{{Num (Ratio Integer)}}, {{Enum (Ratio Integer)}}, (Ratio Integer -> Ratio Integer)] [_DFUN_ Num (Ratio Integer), _DFUN_ Enum (Ratio Integer), _CONSTM_ Real toRational (Ratio Integer)] _N_
+ toRational = _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Integer) (u1 :: Integer) -> _!_ (:%) [Integer] [u0, u1] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Ratio Integer) -> u0 _N_ #-}
+instance RealFloat Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Double}}, {{Floating Double}}, (Double -> Integer), (Double -> Int), (Double -> (Int, Int)), (Double -> (Integer, Int)), (Integer -> Int -> Double), (Double -> Int), (Double -> Double), (Int -> Double -> Double)] [_DFUN_ RealFrac (Double), _DFUN_ Floating (Double), _CONSTM_ RealFloat floatRadix (Double), _CONSTM_ RealFloat floatDigits (Double), _CONSTM_ RealFloat floatRange (Double), _CONSTM_ RealFloat decodeFloat (Double), _CONSTM_ RealFloat encodeFloat (Double), _CONSTM_ RealFloat exponent (Double), _CONSTM_ RealFloat significand (Double), _CONSTM_ RealFloat scaleFloat (Double)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [53#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Double) -> _!_ I# [] [53#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeDouble# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeDouble# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Double#) -> _!_ D# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFloat Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 11 _!_ _TUP_10 [{{RealFrac Float}}, {{Floating Float}}, (Float -> Integer), (Float -> Int), (Float -> (Int, Int)), (Float -> (Integer, Int)), (Integer -> Int -> Float), (Float -> Int), (Float -> Float), (Int -> Float -> Float)] [_DFUN_ RealFrac (Float), _DFUN_ Floating (Float), _CONSTM_ RealFloat floatRadix (Float), _CONSTM_ RealFloat floatDigits (Float), _CONSTM_ RealFloat floatRange (Float), _CONSTM_ RealFloat decodeFloat (Float), _CONSTM_ RealFloat encodeFloat (Float), _CONSTM_ RealFloat exponent (Float), _CONSTM_ RealFloat significand (Float), _CONSTM_ RealFloat scaleFloat (Float)] _N_
+ floatRadix = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _#_ int2Integer# [] [2#] _N_} _N_ _N_,
+ floatDigits = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [24#] _N_} _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Float) -> _!_ I# [] [24#] _N_,
+ floatRange = _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _N_ _N_} _N_ _N_,
+ decodeFloat = _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ encodeFloat = _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _F_ _IF_ARGS_ 0 4 XXXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Int#) -> case _#_ encodeFloat# [] [u0, u1, u2, u3] of { _PRIM_ (u4 :: Float#) -> _!_ F# [] [u4] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Integer) (u1 :: Int) -> case u0 of { _ALG_ J# (u2 :: Int#) (u3 :: Int#) (u4 :: ByteArray#) -> case u1 of { _ALG_ I# (u5 :: Int#) -> case _#_ encodeFloat# [] [u2, u3, u4, u5] of { _PRIM_ (u6 :: Float#) -> _!_ F# [] [u6] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_,
+ exponent = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ significand = _A_ 1 _U_ 2 _N_ _N_ _N_ _N_,
+ scaleFloat = _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Double}}, {{Fractional Double}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> (a$z1, Double)), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Double -> a$z1)] [_DFUN_ Real (Double), _DFUN_ Fractional (Double), _CONSTM_ RealFrac properFraction (Double), _CONSTM_ RealFrac truncate (Double), _CONSTM_ RealFrac round (Double), _CONSTM_ RealFrac ceiling (Double), _CONSTM_ RealFrac floor (Double)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance RealFrac Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real Float}}, {{Fractional Float}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> (a$z1, Float)), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Float -> a$z1)] [_DFUN_ Real (Float), _DFUN_ Fractional (Float), _CONSTM_ RealFrac properFraction (Float), _CONSTM_ RealFrac truncate (Float), _CONSTM_ RealFrac round (Float), _CONSTM_ RealFrac ceiling (Float), _CONSTM_ RealFrac floor (Float)] _N_
+ properFraction = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Integral a => RealFrac (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance RealFrac (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 8 _!_ _TUP_7 [{{Real (Ratio Integer)}}, {{Fractional (Ratio Integer)}}, _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> (a$z1, Ratio Integer)), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1), _forall_ a$z1 =>{{Integral a$z1}} -> (Ratio Integer -> a$z1)] [_DFUN_ Real (Ratio Integer), _DFUN_ Fractional (Ratio Integer), _CONSTM_ RealFrac properFraction (Ratio Integer), _CONSTM_ RealFrac truncate (Ratio Integer), _CONSTM_ RealFrac round (Ratio Integer), _CONSTM_ RealFrac ceiling (Ratio Integer), _CONSTM_ RealFrac floor (Ratio Integer)] _N_
+ properFraction = _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ truncate = _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Integral u0}}) -> _APP_ _TYAPP_ _TYAPP_ _WRKR_ _ORIG_ PreludeCore _truncate { (Ratio Integer) } { u0 } [ _CONSTM_ RealFrac properFraction (Ratio Integer), u1 ] _N_,
+ round = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ ceiling = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_,
+ floor = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text ()
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((), [Char])]), (Int -> () -> [Char] -> [Char]), ([Char] -> [([()], [Char])]), ([()] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (()), _CONSTM_ Text showsPrec (()), _CONSTM_ Text readList (()), _CONSTM_ Text showList (())] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 2 CX 4 \ (u0 :: ()) (u1 :: [Char]) -> case u0 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u1 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 3 XCX 4 \ (u0 :: Int) (u1 :: ()) (u2 :: [Char]) -> case u1 of { _ALG_ _TUP_0 -> _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ _NOREP_S_ "()", u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (a, b)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c) => Text (a, b, c)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d) => Text (a, b, c, d)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b, Text c, Text d, Text e) => Text (a, b, c, d, e)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 5 _U_ 22222 _N_ _N_ _N_ _N_ #-}
+instance Text (Int, Int)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Int, Int), [Char])]), (Int -> (Int, Int) -> [Char] -> [Char]), ([Char] -> [([(Int, Int)], [Char])]), ([(Int, Int)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Int, Int)), _CONSTM_ Text showsPrec ((Int, Int)), _CONSTM_ Text readList ((Int, Int)), _CONSTM_ Text showList ((Int, Int))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (Integer, Integer)
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [((Integer, Integer), [Char])]), (Int -> (Integer, Integer) -> [Char] -> [Char]), ([Char] -> [([(Integer, Integer)], [Char])]), ([(Integer, Integer)] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ((Integer, Integer)), _CONSTM_ Text showsPrec ((Integer, Integer)), _CONSTM_ Text readList ((Integer, Integer)), _CONSTM_ Text showList ((Integer, Integer))] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(LL)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text (a -> b)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance (Ix a, Text a, Text b) => Text (Array a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Assoc a b)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text Bool
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Bool, [Char])]), (Int -> Bool -> [Char] -> [Char]), ([Char] -> [([Bool], [Char])]), ([Bool] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Bool), _CONSTM_ Text showsPrec (Bool), _CONSTM_ Text readList (Bool), _CONSTM_ Text showList (Bool)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AEL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Char, [Char])]), (Int -> Char -> [Char] -> [Char]), ([Char] -> [([Char], [Char])]), ([Char] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Char), _CONSTM_ Text showsPrec (Char), _CONSTM_ Text readList (Char), _CONSTM_ Text showList (Char)] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "AU(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Complex a)
+ {-# GHC_PRAGMA _M_ PreludeComplex {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Double, [Char])]), (Int -> Double -> [Char] -> [Char]), ([Char] -> [([Double], [Char])]), ([Double] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Double), _CONSTM_ Text showsPrec (Double), _CONSTM_ Text readList (Double), _CONSTM_ Text showList (Double)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText readFloat [ (Double) ], u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 212 _N_ _S_ "LU(P)" {_A_ 2 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u1 ] _N_} _F_ _IF_ARGS_ 0 2 XC 5 \ (u0 :: Int) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> _APP_ _WRKR_ _SPEC_ _ORIG_ PreludeText showSigned [ (Double) ] [ _SPEC_ _ORIG_ PreludeText showFloat [ (Double) ], u0, u2 ]; _NO_DEFLT_ } _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Float, [Char])]), (Int -> Float -> [Char] -> [Char]), ([Char] -> [([Float], [Char])]), ([Float] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Float), _CONSTM_ Text showsPrec (Float), _CONSTM_ Text readList (Float), _CONSTM_ Text showList (Float)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 1 _U_ 222 _N_ _N_ _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Int, [Char])]), (Int -> Int -> [Char] -> [Char]), ([Char] -> [([Int], [Char])]), ([Int] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Int), _CONSTM_ Text showsPrec (Int), _CONSTM_ Text readList (Int), _CONSTM_ Text showList (Int)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Int) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Int) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text Integer
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Integer, [Char])]), (Int -> Integer -> [Char] -> [Char]), ([Char] -> [([Integer], [Char])]), ([Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Integer), _CONSTM_ Text showsPrec (Integer), _CONSTM_ Text readList (Integer), _CONSTM_ Text showList (Integer)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ "AL" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u0 ] _N_} _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _SPEC_ _ORIG_ PreludeText readSigned [ (Integer) ] [ _SPEC_ _ORIG_ PreludeText readDec [ (Integer) ], u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 212 _N_ _S_ "LU(PPP)L" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Integral a => Text (Ratio a)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text (Ratio Integer)
+ {-# GHC_PRAGMA _M_ PreludeRatio {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(Ratio Integer, [Char])]), (Int -> Ratio Integer -> [Char] -> [Char]), ([Char] -> [([Ratio Integer], [Char])]), ([Ratio Integer] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (Ratio Integer), _CONSTM_ Text showsPrec (Ratio Integer), _CONSTM_ Text readList (Ratio Integer), _CONSTM_ Text showList (Ratio Integer)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text [a]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Text [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Char], [Char])]), (Int -> [Char] -> [Char] -> [Char]), ([Char] -> [([[Char]], [Char])]), ([[Char]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Char]), _CONSTM_ Text showsPrec ([Char]), _CONSTM_ Text readList ([Char]), _CONSTM_ Text showList ([Char])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Char) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Char) _N_,
+ showsPrec = _A_ 2 _U_ 022 _N_ _S_ "AL" {_A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_} _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _CONSTM_ Text showList (Char) [ u1 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text [Int]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [([Int], [Char])]), (Int -> [Int] -> [Char] -> [Char]), ([Char] -> [([[Int]], [Char])]), ([[Int]] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec ([Int]), _CONSTM_ Text showsPrec ([Int]), _CONSTM_ Text readList ([Int]), _CONSTM_ Text showList ([Int])] _N_
+ readsPrec = _A_ 1 _U_ 02 _N_ _S_ "A" {_A_ 0 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text readList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text readList (Int) _N_,
+ showsPrec = _A_ 1 _U_ 022 _N_ _S_ "A" {_A_ 0 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Int) _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int) -> _CONSTM_ Text showList (Int) _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text _PackedString
+ {-# GHC_PRAGMA _M_ PreludePS {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(_PackedString, [Char])]), (Int -> _PackedString -> [Char] -> [Char]), ([Char] -> [([_PackedString], [Char])]), ([_PackedString] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (_PackedString), _CONSTM_ Text showsPrec (_PackedString), _CONSTM_ Text readList (_PackedString), _CONSTM_ Text showList (_PackedString)] _N_
+ readsPrec = _A_ 2 _U_ 02 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ error { ([Char] -> [(_PackedString, [Char])]) } [ _NOREP_S_ "readsPrec: _PackedString: ToDo", u1 ] _N_,
+ showsPrec = _A_ 3 _U_ 012 _N_ _S_ "ALL" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 0 3 XXX 6 \ (u0 :: Int) (u1 :: _PackedString) (u2 :: [Char]) -> let {(u3 :: [Char]) = _APP_ _ORIG_ PreludePS _unpackPS [ u1 ]} in _APP_ _CONSTM_ Text showList (Char) [ u3, u2 ] _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance _CCallable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_MutableByteArray a b)
+ {-# GHC_PRAGMA _M_ PreludeGlaST {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 2 0 X 1 _/\_ u0 u1 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CCallable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable ()
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Char
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Double
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Float
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable Int
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable [Char]
+ {-# GHC_PRAGMA _M_ PreludeBuiltin {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Addr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _MallocPtr
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable (_StablePtr a)
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+instance _CReturnable _Word
+ {-# GHC_PRAGMA _M_ PreludeCore {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeHi.hs b/ghc/lib/prelude/PreludeHi.hs
new file mode 100644
index 0000000000..2edf8c2461
--- /dev/null
+++ b/ghc/lib/prelude/PreludeHi.hs
@@ -0,0 +1,97 @@
+-- compiled solely to produce an .hi file
+--
+module Prelude (
+
+ -- NO: really builtin (0.20+): trace,
+
+ (%), numerator, denominator, approxRational,
+
+ realPart, imagPart, conjugate, mkPolar, cis,
+ polar, magnitude, phase,
+
+ _appendPS, _breakPS, _concatPS, _dropPS, _dropWhilePS,
+ _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS,
+ _linesPS, _mapPS, _nilPS, _consPS, _nullPS, _packCBytes,
+ _packCString, _packString, _byteArrayToPS, _psToByteArray,
+ _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS,
+ _takeWhilePS, _unpackPS, _wordsPS, _putPS,
+
+ (&&), (||), not, otherwise,
+ (^), (^^), appendBin, asTypeOf, atan2, fromIntegral,
+ fromRealFrac, gcd, isAlpha, isAlphanum, isAscii, isControl,
+ isDigit, isLower, isNullBin, isPrint, isSpace, isUpper, lcm,
+ maxChar, maxInt, minChar, minInt, nullBin, subtract, toLower,
+ toUpper, until, fst, snd, id, const, (.), flip, ($),
+ ord, chr,
+
+#if defined(__UNBOXED_INSTANCES__)
+ minInt#, maxInt#,
+ minChar#, maxChar#,
+ toChar#, fromChar#,
+ isAscii#, isControl#, isPrint#, isSpace#,
+ isUpper#, isLower#, isAlpha#, isDigit#, isAlphanum#,
+ toUpper#, toLower#,
+#endif
+
+ head, last, tail, init, null, (++), (\\), genericLength,
+ length, (!!), map, filter, partition, {-BUILTIN: foldl,-}
+ foldl1, scanl, scanl1, {-BUILTIN: foldr,-} foldr1, scanr, scanr1,
+ iterate, repeat, cycle, take, drop, splitAt, takeWhile,
+ dropWhile, span, break, lines, words, unlines, unwords, nub,
+ reverse, and, or, any, all, elem, notElem, sum,
+ product, sums, products, maximum, minimum, concat,
+ transpose, zip, zip3, zip4, zip5, zip6, zip7, zipWith,
+ zipWith3, zipWith4, zipWith5, zipWith6, zipWith7, unzip,
+ unzip3, unzip4, unzip5, unzip6, unzip7,
+
+ array, listArray, (!), bounds, indices, elems, assocs,
+ accumArray, (//), accum, amap, ixmap,
+
+ reads, shows, show, read, lex, showChar, showString,
+ readParen, showParen, readLitChar, showLitChar, readSigned,
+ showSigned, showSpace__, readDec, showInt, readFloat, showFloat,
+ _showHex, _showRadix, _showDigit, -- non-std
+ _readList, _showList, _truncate, _round, _ceiling, _floor,
+
+ _readRational, _showRational, -- extras!
+
+ stdin, stdout, stderr, stdecho, done, readFile, writeFile,
+ appendFile, readBinFile, writeBinFile, appendBinFile,
+ deleteFile, statusFile, readChan, appendChan, readBinChan,
+ appendBinChan, statusChan, echo, getArgs, getProgName, getEnv,
+ setEnv, sigAction, abort, exit, print, prints, interact,
+ strDispatch, strListDispatch, binDispatch, succDispatch,
+
+ -- and for foldr/build
+ _build
+
+ ) where
+
+-- few *Ty(s) imports
+import TyArray ( Array(..), Assoc(..), _ByteArray )
+import TyComplex ( Complex(..) )
+import TyIO
+--import Builtin ( trace )
+import Cls hiding ( String )
+import Core
+import PreludeGlaST ( _MutableByteArray, _MutableArray )
+import IArray
+import IBool
+import IChar
+import IComplex
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IO
+import IRatio
+import ITup0
+import ITup2
+import ITup3
+import ITup4
+import ITup5
+import List
+import Prel
+import Text
+import PS
diff --git a/ghc/lib/prelude/PreludeIO.hi b/ghc/lib/prelude/PreludeIO.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO.lhs b/ghc/lib/prelude/PreludeIO.lhs
new file mode 100644
index 0000000000..02c1a74105
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO.lhs
@@ -0,0 +1,100 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1994
+%
+\section[PrelIO]{Top Level I/O}
+
+This module collects and exports the more primitive Prelude modules.
+
+\begin{code}
+
+module PreludeIO (
+ (>>),
+ (>>=),
+ accumulate,
+ appendFile13,
+ either,
+ fail,
+ failWith,
+ getChar,
+ hClose,
+ hFileSize,
+ hFlush,
+ hGetChar,
+ hGetContents,
+ hGetPosn,
+ hIsBlockBuffered,
+ hIsClosed,
+ hIsEOF,
+ hIsLineBuffered,
+ hIsNotBuffered,
+ hIsOpen,
+ hIsReadable,
+ hIsSeekable,
+ hIsWritable,
+ hLookAhead,
+ hPutChar,
+ hPutStr,
+ hPutText,
+ hReady,
+ hSeek,
+ hSetBuffering,
+ hSetPosn,
+ handle,
+ interact13,
+ isEOF,
+ openFile,
+ putChar,
+ putStr,
+ putText,
+ print13,
+ readFile13,
+ return,
+ sequence,
+ stderr13,
+ stdin13,
+ stdout13,
+ try,
+ writeFile13,
+ IOError13(..),
+ Either(..),
+ BufferMode(..),
+ IOMode(..),
+ SeekMode(..),
+ Maybe(..),
+ FilePath(..),
+ Handle(..),
+ HandlePosn(..),
+ IO(..),
+ _Handle,
+ _MVar
+ ) where
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++) )
+import PS
+import Prel ( (.) )
+import Text
+
+import PreludeGlaST
+import PreludePrimIO ( _MVar )
+import PreludeIOError
+import PreludeMonadicIO
+import PreludeStdIO
+import PreludeReadTextIO
+import PreludeWriteTextIO
+
+\end{code}
+
+The interact computation supports classical Landin-stream character
+I/O, as in Haskell 1.2.
+
+\begin{code}
+
+interact13 :: (String -> String) -> IO ()
+interact13 f = hGetContents stdin13 >>= (putStr . f)
+
+\end{code}
diff --git a/ghc/lib/prelude/PreludeIOError.hi b/ghc/lib/prelude/PreludeIOError.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError.lhs b/ghc/lib/prelude/PreludeIOError.lhs
new file mode 100644
index 0000000000..ed4e44794a
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError.lhs
@@ -0,0 +1,107 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1994
+%
+\section[PrelIOErr]{I/O Errors}
+
+Haskell 1.2 does not provide standard error values for I/O errors.
+This is unacceptable for portable implementations which indulge in
+non-trivial I/O. The $IOError$ type has therefore been extended from
+Haskell 1.2, and possible error values have been identified for all
+standard operations.
+
+\begin{code}
+#include "error.h"
+
+module PreludeIOError (IOError13(..), _constructError) where
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++) )
+import PS
+import Prel ( (.), not )
+import PreludeGlaST
+import Text
+
+data IOError13 = AlreadyExists String
+ | HardwareFault String
+ | IllegalOperation String
+ | InappropriateType String
+ | Interrupted String
+ | InvalidArgument String
+ | NoSuchThing String
+ | OtherError13 String
+ | PermissionDenied String
+ | ProtocolError String
+ | ResourceBusy String
+ | ResourceExhausted String
+ | ResourceVanished String
+ | SystemError String
+ | TimeExpired String
+ | UnsatisfiedConstraints String
+ | UnsupportedOperation String
+ | UserError String
+ | EOF
+ -- not really OK: deriving (Text)
+
+instance Text IOError13 where -- NB: not interested in reading
+ showsPrec p (AlreadyExists s) = show2 "AlreadyExists: " s
+ showsPrec p (HardwareFault s) = show2 "HardwareFault: " s
+ showsPrec p (IllegalOperation s) = show2 "IllegalOperation: " s
+ showsPrec p (InappropriateType s) = show2 "InappropriateType: " s
+ showsPrec p (Interrupted s) = show2 "Interrupted: " s
+ showsPrec p (InvalidArgument s) = show2 "InvalidArgument: " s
+ showsPrec p (NoSuchThing s) = show2 "NoSuchThing: " s
+ showsPrec p (OtherError13 s) = show2 "OtherError13: " s
+ showsPrec p (PermissionDenied s) = show2 "PermissionDenied: " s
+ showsPrec p (ProtocolError s) = show2 "ProtocolError: " s
+ showsPrec p (ResourceBusy s) = show2 "ResourceBusy: " s
+ showsPrec p (ResourceExhausted s) = show2 "ResourceExhausted: " s
+ showsPrec p (ResourceVanished s) = show2 "ResourceVanished: " s
+ showsPrec p (SystemError s) = show2 "SystemError: " s
+ showsPrec p (TimeExpired s) = show2 "TimeExpired: " s
+ showsPrec p (UnsatisfiedConstraints s) = show2 "UnsatisfiedConstraints: " s
+ showsPrec p (UnsupportedOperation s)= show2 "UnsupportedOperation: " s
+ showsPrec p (UserError s) = showString s
+ showsPrec p EOF = showString "EOF"
+
+show2 x y = showString x . showString y
+
+_constructError :: PrimIO IOError13
+_constructError =
+ _casm_ ``%r = ghc_errtype;'' `thenPrimIO` \ (I# errtype#) ->
+ _casm_ ``%r = ghc_errstr;'' `thenPrimIO` \ str ->
+ let
+ msg = _unpackPS (_packCString str)
+ in
+ returnPrimIO (case errtype# of
+ ERR_ALREADYEXISTS# -> AlreadyExists msg
+ ERR_HARDWAREFAULT# -> HardwareFault msg
+ ERR_ILLEGALOPERATION# -> IllegalOperation msg
+ ERR_INAPPROPRIATETYPE# -> InappropriateType msg
+ ERR_INTERRUPTED# -> Interrupted msg
+ ERR_INVALIDARGUMENT# -> InvalidArgument msg
+ ERR_NOSUCHTHING# -> NoSuchThing msg
+ ERR_OTHERERROR# -> OtherError13 msg
+ ERR_PERMISSIONDENIED# -> PermissionDenied msg
+ ERR_PROTOCOLERROR# -> ProtocolError msg
+ ERR_RESOURCEBUSY# -> ResourceBusy msg
+ ERR_RESOURCEEXHAUSTED# -> ResourceExhausted msg
+ ERR_RESOURCEVANISHED# -> ResourceVanished msg
+ ERR_SYSTEMERROR# -> SystemError msg
+ ERR_TIMEEXPIRED# -> TimeExpired msg
+ ERR_UNSATISFIEDCONSTRAINTS# -> UnsatisfiedConstraints msg
+ ERR_UNSUPPORTEDOPERATION# -> UnsupportedOperation msg
+ ERR_EOF# -> EOF
+ _ -> OtherError13 "bad error construct"
+ )
+\end{code}
+
+The $String$ part of an $IOError13$ is platform-dependent. However, to
+provide a uniform mechanism for distinguishing among errors within
+these broad categories, each platform-specific standard shall specify
+the exact strings to be used for particular errors. For errors not
+explicitly mentioned in the standard, any descriptive string may be
+used.
diff --git a/ghc/lib/prelude/PreludeIOError_mc.hi b/ghc/lib/prelude/PreludeIOError_mc.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_mc.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError_mg.hi b/ghc/lib/prelude/PreludeIOError_mg.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_mg.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError_mp.hi b/ghc/lib/prelude/PreludeIOError_mp.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_mp.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError_mr.hi b/ghc/lib/prelude/PreludeIOError_mr.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_mr.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError_mt.hi b/ghc/lib/prelude/PreludeIOError_mt.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_mt.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError_p.hi b/ghc/lib/prelude/PreludeIOError_p.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_p.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIOError_t.hi b/ghc/lib/prelude/PreludeIOError_t.hi
new file mode 100644
index 0000000000..e2872e1053
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIOError_t.hi
@@ -0,0 +1,14 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIOError where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+_constructError :: _State _RealWorld -> (IOError13, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_mc.hi b/ghc/lib/prelude/PreludeIO_mc.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_mc.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_mg.hi b/ghc/lib/prelude/PreludeIO_mg.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_mg.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_mp.hi b/ghc/lib/prelude/PreludeIO_mp.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_mp.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_mr.hi b/ghc/lib/prelude/PreludeIO_mr.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_mr.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_mt.hi b/ghc/lib/prelude/PreludeIO_mt.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_mt.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_p.hi b/ghc/lib/prelude/PreludeIO_p.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_p.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeIO_t.hi b/ghc/lib/prelude/PreludeIO_t.hi
new file mode 100644
index 0000000000..d010ce1e42
--- /dev/null
+++ b/ghc/lib/prelude/PreludeIO_t.hi
@@ -0,0 +1,137 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13(..))
+import PreludeMonadicIO((>>), (>>=), Either(..), IO(..), accumulate, either, fail, failWith, handle, return, sequence, try)
+import PreludePrimIO(_MVar)
+import PreludeReadTextIO(getChar, hGetChar, hGetContents, hLookAhead, hReady, readFile13)
+import PreludeStdIO(BufferMode(..), FilePath(..), Handle(..), HandlePosn(..), IOMode(..), Maybe(..), SeekMode(..), _Handle, hClose, hFileSize, hFlush, hGetPosn, hIsBlockBuffered, hIsClosed, hIsEOF, hIsLineBuffered, hIsNotBuffered, hIsOpen, hIsReadable, hIsSeekable, hIsWritable, hSeek, hSetBuffering, hSetPosn, isEOF, openFile, stderr13, stdin13, stdout13)
+import PreludeWriteTextIO(appendFile13, hPutChar, hPutStr, hPutText, print13, putChar, putStr, putText, writeFile13)
+infixr 1 >>
+infixr 1 >>=
+data IOError13 = AlreadyExists [Char] | HardwareFault [Char] | IllegalOperation [Char] | InappropriateType [Char] | Interrupted [Char] | InvalidArgument [Char] | NoSuchThing [Char] | OtherError13 [Char] | PermissionDenied [Char] | ProtocolError [Char] | ResourceBusy [Char] | ResourceExhausted [Char] | ResourceVanished [Char] | SystemError [Char] | TimeExpired [Char] | UnsatisfiedConstraints [Char] | UnsupportedOperation [Char] | UserError [Char] | EOF
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+data _MVar a {-# GHC_PRAGMA _MVar (SynchVar# _RealWorld a) #-}
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle {-# GHC_PRAGMA _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool #-}
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+interact13 :: ([Char] -> [Char]) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text IOError13
+ {-# GHC_PRAGMA _M_ PreludeIOError {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(IOError13, [Char])]), (Int -> IOError13 -> [Char] -> [Char]), ([Char] -> [([IOError13], [Char])]), ([IOError13] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (IOError13), _CONSTM_ Text showsPrec (IOError13), _CONSTM_ Text readList (IOError13), _CONSTM_ Text showList (IOError13)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(IOError13, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AS" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO.hi b/ghc/lib/prelude/PreludeMonadicIO.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO.lhs b/ghc/lib/prelude/PreludeMonadicIO.lhs
new file mode 100644
index 0000000000..38bb570be3
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO.lhs
@@ -0,0 +1,204 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1994
+%
+\section[PrelMonIO]{Monadic I/O Primitives}
+
+This module defines the basic monadic framework for Haskell 1.3 I/O.
+
+\begin{code}
+
+module PreludeMonadicIO (
+ (>>),
+ (>>=),
+ accumulate,
+ either,
+ fail,
+ failWith,
+ handle,
+ return,
+ sequence,
+ try,
+
+ IO(..),
+ Either(..)
+
+ ) where
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++) )
+import Prel ( (.), not )
+import PS ( _PackedString, _unpackPS )
+import Text
+
+import PreludeGlaST
+import PreludeIOError
+
+infixr 1 >>, >>=
+
+\end{code}
+
+\subsection[IOMonad]{The IO Monad}
+
+I/O operations may need to indicate errors, and implementations may
+need to handle these errors. The $IO$ monad extends existing practice
+by making this functionality primitive. The exact errors which may
+occur are defined in $PreludeIOError13$.
+
+\begin{code}
+
+type IO a = PrimIO (Either IOError13 a)
+
+data Either a b = Left a | Right b deriving (Text, Eq, Ord)
+
+\end{code}
+
+An expression of type $IO a$, for some type {\em a}, denotes a
+computation whose answer is either a result of type {\em a} or an
+<em>error</em> of type $IOError13$. The computation succeeds with
+result {\em succ} if its answer is $Right succ$, and fails with
+result {\em fail} if its answer is $Left fail$. Note that the
+type system delimits the possibility of failure: only expressions of
+some type $IO a$ can <em>fail</em> in the sense defined here.
+
+\begin{code}
+
+{-# INLINE return #-}
+{-# INLINE failWith #-}
+
+return :: a -> IO a
+failWith :: IOError13 -> IO a
+
+return = returnPrimIO . Right
+failWith = returnPrimIO . Left
+
+\end{code}
+
+There are two primitives to create trivial computations, one for
+each of the two possibilities, success or failure.
+
+$return result$ is a computation that succeeds with result
+{\em result}.
+
+$failWith fail$ is a computation that fails with the error
+{\em fail}.
+
+\begin{code}
+
+{-# INLINE (>>=) #-}
+
+(>>=) :: IO a -> (a -> IO b) -> IO b
+m >>= k = m `thenPrimIO` \ r -> k' r
+ where
+ k' (Right x) = k x
+ k' (Left err) = returnPrimIO (Left err)
+
+\end{code}
+
+The $>>=$ operation is used to sequence two computations, where the
+second computation is parameterised on the result of the first.
+
+\begin{code}
+
+{-# INLINE (>>) #-}
+
+(>>) :: IO a -> IO b -> IO b
+m >> k = m >>= \ _ -> k
+
+\end{code}
+
+The restricted form of $>>=$, $>>$, is used when the result of the
+first computation is uninteresting.
+
+\subsection[Error-Handling]{Error Handling}
+
+\begin{code}
+
+handle :: IO a -> (IOError13 -> IO a) -> IO a
+handle m k = m `thenPrimIO` \ r -> k' r
+ where
+ k' (Left err) = k err
+ k' result = returnPrimIO result
+
+\end{code}
+
+The construct $handle comp handler$ can be used to handle a
+simple error during a computation {\em comp}. Its usefulness is
+limited in that the replacement value must be of the same type as the
+result of {\em comp}.
+
+\begin{code}
+
+try :: IO a -> IO (Either IOError13 a)
+try p = handle (p >>= (return . Right)) (return . Left)
+
+\end{code}
+
+The construct $try comp$ exposes errors which occur within a
+computation, and which are not fully handled. It always succeeds.
+
+\subsection[UserErrors]{User-Defined Errors}
+
+\begin{code}
+
+fail :: String -> IO a
+fail = failWith . UserError
+
+\end{code}
+
+As a convention for user-generated errors, to return an error message
+$msg :: String$, return the error value $UserError msg$
+via the computation $fail msg$.
+
+This construct should be used instead of Haskell's $error :: String -> a$
+operation wherever convenient.
+
+\subsection[HOFs]{Higher-Order Utility Functions}
+
+\begin{code}
+
+either :: (a -> c) -> (b -> c) -> (Either a b) -> c
+either kl kr x = case x of {Left a -> kl a; Right b -> kr b}
+
+\end{code}
+
+The construct $either a b$ can be used to generate functions on types
+of the form $Either a b$.
+
+\begin{code}
+
+accumulate :: [IO a] -> IO [a]
+
+accumulate [] = return []
+accumulate (f:fs)
+ = f >>= \ x ->
+ accumulate fs >>= \ xs ->
+ return (x:xs)
+
+{- partain: this may be right, but I'm going w/ a more-certainly-right version
+accumulate = foldr mcons (return [])
+ where
+ mcons :: IO a -> IO [a] -> IO [a]
+ mcons p q = p >>= \x -> q >>= \y -> return (x : y)
+-}
+
+\end{code}
+
+The $accumulate$ computation is used to process a list of computations
+of the same type, and to return a list of their results when executed
+in sequence.
+
+\begin{code}
+
+sequence :: [IO a] -> IO ()
+sequence = foldr (>>) (return ())
+
+\end{code}
+
+The $sequence$ computation is used for the simpler case when the
+computations are executed entirely for their external effect, and the
+results are therefore uninteresting.
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_mc.hi b/ghc/lib/prelude/PreludeMonadicIO_mc.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_mc.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_mg.hi b/ghc/lib/prelude/PreludeMonadicIO_mg.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_mg.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_mp.hi b/ghc/lib/prelude/PreludeMonadicIO_mp.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_mp.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_mr.hi b/ghc/lib/prelude/PreludeMonadicIO_mr.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_mr.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_mt.hi b/ghc/lib/prelude/PreludeMonadicIO_mt.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_mt.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_p.hi b/ghc/lib/prelude/PreludeMonadicIO_p.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_p.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeMonadicIO_t.hi b/ghc/lib/prelude/PreludeMonadicIO_t.hi
new file mode 100644
index 0000000000..90681d8b22
--- /dev/null
+++ b/ghc/lib/prelude/PreludeMonadicIO_t.hi
@@ -0,0 +1,36 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeMonadicIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+infixr 1 >>
+infixr 1 >>=
+data Either a b = Left a | Right b
+type IO a = _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+(>>) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (_State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> let {(u7 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) = \ (u5 :: u0) (u6 :: _State _RealWorld) -> _APP_ u3 [ u6 ]} in _APP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeMonadicIO (>>=) { u0 } { u1 } [ u2, u7, u4 ] _N_ #-}
+(>>=) :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (a -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 b, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: _State _RealWorld -> (Either IOError13 u0, _State _RealWorld)) (u3 :: u0 -> _State _RealWorld -> (Either IOError13 u1, _State _RealWorld)) (u4 :: _State _RealWorld) -> case _APP_ u2 [ u4 ] of { _ALG_ _TUP_2 (u5 :: Either IOError13 u0) (u6 :: _State _RealWorld) -> case u5 of { _ALG_ Right (u7 :: u0) -> _APP_ u3 [ u7, u6 ]; Left (u8 :: IOError13) -> let {(u9 :: Either IOError13 u1) = _!_ Left [IOError13, u1] [u8]} in case u6 of { _ALG_ S# (ua :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u1), (_State _RealWorld)] [u9, u6]; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+accumulate :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 [a], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+either :: (a -> c) -> (b -> c) -> Either a b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _F_ _IF_ARGS_ 3 3 XXC 6 _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u2) (u5 :: Either u0 u1) -> case u5 of { _ALG_ Left (u6 :: u0) -> _APP_ u3 [ u6 ]; Right (u7 :: u1) -> _APP_ u4 [ u7 ]; _NO_DEFLT_ } _N_ #-}
+fail :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+failWith :: IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: IOError13) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Left [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+handle :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> (IOError13 -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _N_ _N_ #-}
+return :: a -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) (u2 :: _State _RealWorld) -> let {(u3 :: Either IOError13 u0) = _!_ Right [IOError13, u0] [u1]} in case u2 of { _ALG_ S# (u4 :: State# _RealWorld) -> _!_ _TUP_2 [(Either IOError13 u0), (_State _RealWorld)] [u3, u2]; _NO_DEFLT_ } _N_ #-}
+sequence :: [_State _RealWorld -> (Either IOError13 a, _State _RealWorld)] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+try :: (_State _RealWorld -> (Either IOError13 a, _State _RealWorld)) -> _State _RealWorld -> (Either IOError13 (Either IOError13 a), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+instance (Ord a, Ord b) => Ord (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ #-}
+instance (Text a, Text b) => Text (Either a b)
+ {-# GHC_PRAGMA _M_ PreludeMonadicIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeNull_.hi b/ghc/lib/prelude/PreludeNull_.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull_.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__1s.hi b/ghc/lib/prelude/PreludeNull__1s.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__1s.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__2s.hi b/ghc/lib/prelude/PreludeNull__2s.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__2s.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__du.hi b/ghc/lib/prelude/PreludeNull__du.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__du.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__i.hi b/ghc/lib/prelude/PreludeNull__i.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__i.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__j.hi b/ghc/lib/prelude/PreludeNull__j.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__j.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__k.hi b/ghc/lib/prelude/PreludeNull__k.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__k.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__l.hi b/ghc/lib/prelude/PreludeNull__l.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__l.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__m.hi b/ghc/lib/prelude/PreludeNull__m.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__m.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__mc.hi b/ghc/lib/prelude/PreludeNull__mc.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__mc.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__mg.hi b/ghc/lib/prelude/PreludeNull__mg.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__mg.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__mp.hi b/ghc/lib/prelude/PreludeNull__mp.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__mp.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__mr.hi b/ghc/lib/prelude/PreludeNull__mr.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__mr.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__mt.hi b/ghc/lib/prelude/PreludeNull__mt.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__mt.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__n.hi b/ghc/lib/prelude/PreludeNull__n.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__n.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__o.hi b/ghc/lib/prelude/PreludeNull__o.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__o.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__p.hi b/ghc/lib/prelude/PreludeNull__p.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__p.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeNull__t.hi b/ghc/lib/prelude/PreludeNull__t.hi
new file mode 100644
index 0000000000..e78fb72227
--- /dev/null
+++ b/ghc/lib/prelude/PreludeNull__t.hi
@@ -0,0 +1,4 @@
+interface Prelude where {
+ -- nothing here: slurped when "-fno-implicit-prelude"
+no_implicit_prelude____ :: Int
+}
diff --git a/ghc/lib/prelude/PreludeReadTextIO.hi b/ghc/lib/prelude/PreludeReadTextIO.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO.lhs b/ghc/lib/prelude/PreludeReadTextIO.lhs
new file mode 100644
index 0000000000..ba61a312ec
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO.lhs
@@ -0,0 +1,311 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1994
+%
+\section[PrelReadTextIO]{Haskell 1.3 Text Input}
+
+This module defines the standard set of input operations for reading
+characters and strings from text files, using {\em handles}.
+
+\begin{code}
+module PreludeReadTextIO (
+ hReady,
+ hGetChar,
+ getChar,
+ hLookAhead,
+ hGetContents,
+ readFile13
+ ) where
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++) )
+import Prel ( chr )
+import Text
+
+import PreludeIOError
+import PreludeMonadicIO
+import PreludePrimIO
+import PreludeGlaST
+import PreludeStdIO
+import PS
+
+---------------------------------
+infixr 1 `my_then`
+
+my_then :: IO a -> (a -> PrimIO b) -> PrimIO b
+{-# INLINE my_then #-}
+
+my_then m k = m `thenPrimIO` \ r -> k' r
+ where
+ k' (Right x) = k x
+ k' (Left err) = error "my_then"
+---------------------------------
+
+
+hReady :: Handle -> IO Bool
+hReady handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ _WriteHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ other ->
+ _ccall_ inputReady (_filePtr other) `thenPrimIO` \ rc ->
+ putMVar handle (_markHandle htype) >>
+ case rc of
+ 0 -> return False
+ 1 -> return True
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+Computation $hReady hdl$ indicates whether at least
+one item is available for input from handle {\em hdl}.
+
+\begin{code}
+
+hGetChar :: Handle -> IO Char
+hGetChar handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ _WriteHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ other ->
+ _ccall_ fileGetc (_filePtr other) `thenPrimIO` \ intc ->
+ putMVar handle (_markHandle htype) >>
+ if intc /= ``EOF'' then
+ return (chr intc)
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+getChar :: IO Char
+getChar = hGetChar stdin13
+
+\end{code}
+
+Computation $hGetChar hdl$ reads the next character from handle {\em
+hdl}, blocking until a character is available.
+
+$getChar$ reads the next character from $stdin$.
+
+\begin{code}
+
+hLookAhead :: Handle -> IO Char
+hLookAhead handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ _WriteHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ other ->
+ _ccall_ fileLookAhead (_filePtr other) `thenPrimIO` \ intc ->
+ putMVar handle (_markHandle htype) >>
+ if intc /= ``EOF'' then
+ return (chr intc)
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+Computation $hLookahead hdl$ returns the next character from handle
+{\em hdl} without removing it from the input buffer, blocking until a
+character is available.
+
+\begin{code}
+
+hGetContents :: Handle -> IO String
+hGetContents handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ _WriteHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ other ->
+
+ {-
+ To avoid introducing an extra layer of buffering here,
+ we provide three lazy read methods, based on character,
+ line, and block buffering.
+ -}
+
+ _getBufferMode other `thenPrimIO` \ other ->
+ case _bufferMode other of
+ Just LineBuffering ->
+ allocBuf Nothing >>= \ buf_info ->
+ putMVar handle (_SemiClosedHandle (_filePtr other) buf_info)
+ >>
+ unsafeInterleavePrimIO (lazyReadLine handle)
+ `thenPrimIO` \ contents ->
+ return contents
+
+ Just (BlockBuffering size) ->
+ allocBuf size >>= \ buf_info ->
+ putMVar handle (_SemiClosedHandle (_filePtr other) buf_info)
+ >>
+ unsafeInterleavePrimIO (lazyReadBlock handle)
+ `thenPrimIO` \ contents ->
+ return contents
+ _ -> -- Nothing is treated pessimistically as NoBuffering
+ putMVar handle (_SemiClosedHandle (_filePtr other) (``NULL'', 0))
+ >>
+ unsafeInterleavePrimIO (lazyReadChar handle)
+ `thenPrimIO` \ contents ->
+ return contents
+ where
+ allocBuf :: (Maybe Int) -> IO (_Addr, Int)
+ allocBuf msize =
+ _ccall_ malloc size `thenPrimIO` \ buf ->
+ if buf /= ``NULL'' then
+ return (buf, size)
+ else
+ failWith (ResourceExhausted "not enough virtual memory")
+ where
+ size =
+ case msize of
+ Just x -> x
+ Nothing -> ``BUFSIZ''
+
+{-
+ Note that someone may yank our handle out from under us, and then re-use
+ the same FILE * for something else. Therefore, we have to re-examine the
+ handle every time through.
+-}
+
+lazyReadBlock :: Handle -> PrimIO String
+lazyReadBlock handle =
+ takeMVar handle `my_then` \ htype ->
+ case htype of
+ -- There cannae be an _ErrorHandle here
+ _ClosedHandle ->
+ putMVar handle htype `seqPrimIO`
+ returnPrimIO ""
+ _SemiClosedHandle fp (buf, size) ->
+ _ccall_ readBlock buf fp size `thenPrimIO` \ bytes ->
+ (if bytes <= 0 then returnStrictlyST _nilPS
+ else _packCBytesST bytes buf) `thenStrictlyST` \ some ->
+ if bytes < 0 then
+ putMVar handle (_SemiClosedHandle ``NULL'' (``NULL'', 0))
+ `seqPrimIO`
+ _ccall_ free buf `thenPrimIO` \ () ->
+ _ccall_ closeFile fp `seqPrimIO`
+ returnPrimIO (_unpackPS some)
+ else
+ putMVar handle htype `seqPrimIO`
+ unsafeInterleavePrimIO (lazyReadBlock handle)
+ `thenPrimIO` \ more ->
+ returnPrimIO (_unpackPS some ++ more)
+
+lazyReadLine :: Handle -> PrimIO String
+lazyReadLine handle =
+ takeMVar handle `my_then` \ htype ->
+ case htype of
+ -- There cannae be an _ErrorHandle here
+ _ClosedHandle ->
+ putMVar handle htype `seqPrimIO`
+ returnPrimIO ""
+ _SemiClosedHandle fp (buf, size) ->
+ _ccall_ readLine buf fp size `thenPrimIO` \ bytes ->
+ (if bytes <= 0 then returnStrictlyST _nilPS
+ else _packCBytesST bytes buf) `thenStrictlyST` \ some ->
+ if bytes < 0 then
+ putMVar handle (_SemiClosedHandle ``NULL'' (``NULL'', 0))
+ `seqPrimIO`
+ _ccall_ free buf `thenPrimIO` \ () ->
+ _ccall_ closeFile fp `seqPrimIO`
+ returnPrimIO (_unpackPS some)
+ else
+ putMVar handle htype `seqPrimIO`
+ unsafeInterleavePrimIO (lazyReadLine handle)
+ `thenPrimIO` \ more ->
+ returnPrimIO (_unpackPS some ++ more)
+
+lazyReadChar :: Handle -> PrimIO String
+lazyReadChar handle =
+ takeMVar handle `my_then` \ htype ->
+ case htype of
+ -- There cannae be an _ErrorHandle here
+ _ClosedHandle ->
+ putMVar handle htype `seqPrimIO`
+ returnPrimIO ""
+ _SemiClosedHandle fp buf_info ->
+ _ccall_ readChar fp `thenPrimIO` \ char ->
+ if char == ``EOF'' then
+ putMVar handle (_SemiClosedHandle ``NULL'' buf_info)
+ `seqPrimIO`
+ _ccall_ closeFile fp `seqPrimIO`
+ returnPrimIO ""
+ else
+ putMVar handle htype `seqPrimIO`
+ unsafeInterleavePrimIO (lazyReadChar handle)
+ `thenPrimIO` \ more ->
+ returnPrimIO (chr char : more)
+
+\end{code}
+
+Computation $hGetContents hdl$ returns the list of characters
+corresponding to the unread portion of the channel or file managed by
+{\em hdl}, which is made semi-closed.
+
+\begin{code}
+
+readFile13 :: FilePath -> IO String
+readFile13 name = openFile name ReadMode >>= hGetContents
+
+\end{code}
+
+$readFile file$ returns the contents of {\em file} as a lazy string.
diff --git a/ghc/lib/prelude/PreludeReadTextIO_mc.hi b/ghc/lib/prelude/PreludeReadTextIO_mc.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_mc.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO_mg.hi b/ghc/lib/prelude/PreludeReadTextIO_mg.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_mg.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO_mp.hi b/ghc/lib/prelude/PreludeReadTextIO_mp.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_mp.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO_mr.hi b/ghc/lib/prelude/PreludeReadTextIO_mr.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_mr.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO_mt.hi b/ghc/lib/prelude/PreludeReadTextIO_mt.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_mt.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO_p.hi b/ghc/lib/prelude/PreludeReadTextIO_p.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_p.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeReadTextIO_t.hi b/ghc/lib/prelude/PreludeReadTextIO_t.hi
new file mode 100644
index 0000000000..24a46143fa
--- /dev/null
+++ b/ghc/lib/prelude/PreludeReadTextIO_t.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeReadTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Bool(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+getChar :: _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeReadTextIO hGetChar [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeReadTextIO hGetChar [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+hGetChar :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetContents :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hLookAhead :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Char, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hReady :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readFile13 :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO.hi b/ghc/lib/prelude/PreludeStdIO.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO.lhs b/ghc/lib/prelude/PreludeStdIO.lhs
new file mode 100644
index 0000000000..941da2f145
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO.lhs
@@ -0,0 +1,918 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1994
+%
+\section[PrelStdIO]{Haskell 1.3 Standard I/O}
+
+This module defines Haskell {\em handles} and the operations which are
+supported for them.
+
+Haskell interfaces to the external world through an abstract {\em file
+system}. This file system is a collection of named {\em file system
+objects}, which may be organised in {\em directories} (see
+$LibDirectory$). In some implementations, directories may themselves
+be file system objects and could be entries in other directories. For
+simplicity, any non-directory file system object is termed a {\em
+file}, although it could in fact be a communication channel, or any
+other object recognised by the operating system.
+
+File and directory names are values of type $String$, whose
+precise meaning is operating system dependent. Files can be opened,
+yielding a handle which can then be used to operate on the contents
+of that file.
+
+\subsection[Handles]{Handles}
+
+The standard defines operations to read/write finite sequences of
+items from/to files, represented by values of type $Handle$. Each
+value of this type is a {\em handle}: a record used by the Haskell
+run-time system to {\em manage} I/O with operating system objects.
+
+A handle has at least the following properties:
+\begin{itemize}
+\item whether it manages input or output or both;
+\item whether it is {\em open}, {\em closed} or {\em semi-closed};
+\item the kind of object it manages;
+\item if relevant, a current I/O position;
+\item whether the object is seekable;
+\item whether buffering is disabled, or enabled on a line or block basis;
+\item a buffer (whose length may be zero).
+\end{itemize}
+
+A handle is {\em readable} if it manages only input or both input and
+output; likewise, it is {\em writable} if it manages only output or
+both input and output. A handle is {\em open} when first allocated.
+Once it is closed it can no longer be used for either input or output,
+though an implementation cannot re-use its storage while references
+remain to it.
+
+\subsubsection[SemiClosed]{Semi-Closed Handles}
+
+The operation $hGetContents$ puts a handle {\em hdl}
+into an intermediate state, {\em semi-closed}. In this state,
+{\em hdl} is effectively closed, but items are read from
+{\em hdl} on demand and accumulated in a special stream returned
+by $hGetContents hdl$.
+
+Any operation except for $hClose$ that fails because a handle is
+closed, also fails if a handle is semi-closed. A semi-closed handle
+becomes closed:
+\begin{itemize}
+\item if $hClose$ is applied to it;
+\item if an I/O error occurs when reading an item from the
+file item from the stream;
+\item or once the entire contents of the file has been read.
+\end{itemize}
+
+Once a semi-closed handle becomes closed, the contents of the
+associated stream becomes fixed, and is the list of those items which
+were successfully read from that handle. Any I/O errors encountered
+when a handle is semi-closed are simply discarded.
+
+\begin{code}
+module PreludeStdIO (
+ _Handle(..),
+ Handle(..),
+ FilePath(..),
+ IOMode(..),
+ BufferMode(..),
+ HandlePosn(..),
+ SeekMode(..),
+ stdin13,
+ stdout13,
+ stderr13,
+ openFile,
+ hClose,
+ hFileSize,
+ hIsEOF,
+ isEOF,
+ hSetBuffering,
+ hFlush,
+ hGetPosn,
+ hSetPosn,
+ hSeek,
+ hIsBlockBuffered,
+ hIsLineBuffered,
+ hIsNotBuffered,
+ hIsOpen,
+ hIsClosed,
+ hIsReadable,
+ hIsWritable,
+ hIsSeekable,
+ _filePtr,
+ _bufferMode,
+ _getBufferMode,
+ _markHandle,
+ Maybe(..)
+ ) where
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( (++) )
+import PS ( _PackedString, _unpackPS )
+import Prel ( otherwise, not, (.) )
+import Text
+import TyArray -- instance _CCallable (_ByteArray a)
+
+import PreludeIOError
+import PreludeMonadicIO
+import PreludePrimIO
+import PreludeGlaST
+
+---------------------------------
+infixr 1 `my_then`
+
+my_then :: IO a -> (a -> PrimIO b) -> PrimIO b
+{-# INLINE my_then #-}
+
+my_then m k = m `thenPrimIO` \ r -> k' r
+ where
+ k' (Right x) = k x
+ k' (Left err) = error "my_then"
+---------------------------------
+
+data Maybe a = Nothing | Just a {-partain-}deriving (Eq, Ord, Text)
+
+data _Handle = _ErrorHandle IOError13
+ | _ClosedHandle
+ | _SemiClosedHandle _Addr (_Addr, Int)
+ | _ReadHandle _Addr (Maybe BufferMode) Bool
+ | _WriteHandle _Addr (Maybe BufferMode) Bool
+ | _AppendHandle _Addr (Maybe BufferMode) Bool
+ | _ReadWriteHandle _Addr (Maybe BufferMode) Bool
+ | _SocketHandle _Addr Bool
+
+type Handle = _MVar _Handle
+type FilePath = String
+
+_filePtr :: _Handle -> _Addr
+_filePtr (_SemiClosedHandle fp buf) = fp
+_filePtr (_ReadHandle fp _ _) = fp
+_filePtr (_WriteHandle fp _ _) = fp
+_filePtr (_AppendHandle fp _ _) = fp
+_filePtr (_ReadWriteHandle fp _ _) = fp
+_filePtr (_SocketHandle fp _) = fp
+
+_bufferMode :: _Handle -> Maybe BufferMode
+_bufferMode (_ReadHandle _ m _) = m
+_bufferMode (_WriteHandle _ m _) = m
+_bufferMode (_AppendHandle _ m _) = m
+_bufferMode (_ReadWriteHandle _ m _) = m
+
+_markHandle :: _Handle -> _Handle
+_markHandle h@(_ReadHandle fp m b)
+ | b = h
+ | otherwise = _ReadHandle fp m True
+_markHandle h@(_WriteHandle fp m b)
+ | b = h
+ | otherwise = _WriteHandle fp m True
+_markHandle h@(_AppendHandle fp m b)
+ | b = h
+ | otherwise = _AppendHandle fp m True
+_markHandle h@(_ReadWriteHandle fp m b)
+ | b = h
+ | otherwise = _ReadWriteHandle fp m True
+_markHandle h@(_SocketHandle fp b)
+ | b = h
+ | otherwise = _SocketHandle fp True
+
+\end{code}
+
+\subsubsection[StandardHandles]{Standard Handles}
+
+\begin{code}
+
+stdin13, stdout13, stderr13 :: Handle
+
+stdin13 = unsafePerformPrimIO (
+ newEmptyMVar `my_then` \ handle ->
+ _ccall_ getLock (``stdin''::_Addr) 0 `thenPrimIO` \ rc ->
+ (case rc of
+ 0 -> putMVar handle _ClosedHandle
+ 1 -> putMVar handle (_ReadHandle ``stdin'' Nothing False)
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ putMVar handle (_ErrorHandle ioError)
+ ) `seqPrimIO`
+ returnPrimIO handle
+ )
+
+stdout13 = unsafePerformPrimIO (
+ newEmptyMVar `my_then` \ handle ->
+ _ccall_ getLock (``stdout''::_Addr) 1 `thenPrimIO` \ rc ->
+ (case rc of
+ 0 -> putMVar handle _ClosedHandle
+ 1 -> putMVar handle (_WriteHandle ``stdout'' Nothing False)
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ putMVar handle (_ErrorHandle ioError)
+ ) `seqPrimIO`
+ returnPrimIO handle
+ )
+
+stderr13 = unsafePerformPrimIO (
+ newEmptyMVar `my_then` \ handle ->
+ _ccall_ getLock (``stderr''::_Addr) 1 `thenPrimIO` \ rc ->
+ (case rc of
+ 0 -> putMVar handle _ClosedHandle
+ 1 -> putMVar handle (_WriteHandle ``stderr'' (Just NoBuffering) False)
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ putMVar handle (_ErrorHandle ioError)
+ ) `seqPrimIO`
+ returnPrimIO handle
+ )
+
+\end{code}
+
+Three handles are allocated during program initialisation. The first
+two manage input or output from the Haskell program's standard input
+or output channel respectively. The third manages output to the
+standard error channel. These handles are initially open.
+
+\subsubsection[OpeningClosing]{Opening and Closing Files}
+
+\begin{code}
+
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+
+openFile :: FilePath -> IOMode -> IO Handle
+
+openFile f m =
+ _ccall_ openFile f m' `thenPrimIO` \ ptr ->
+ if ptr /= ``NULL'' then
+ newEmptyMVar >>= \ handle ->
+ putMVar handle (htype ptr Nothing False) >>
+ return handle
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ let
+ improved_error -- a HACK, I guess
+ = case ioError of
+ AlreadyExists msg -> AlreadyExists (msg ++ ": " ++ f)
+ NoSuchThing msg -> NoSuchThing (msg ++ ": " ++ f)
+ PermissionDenied msg -> PermissionDenied (msg ++ ": " ++ f)
+ _ -> ioError
+ in
+ failWith improved_error
+ where
+ m' = case m of
+ ReadMode -> "r"
+ WriteMode -> "w"
+ AppendMode -> "a"
+ ReadWriteMode -> "r+"
+ htype = case m of
+ ReadMode -> _ReadHandle
+ WriteMode -> _WriteHandle
+ AppendMode -> _AppendHandle
+ ReadWriteMode -> _ReadWriteHandle
+
+\end{code}
+
+Computation $openFile file mode$ allocates and returns a new, open
+handle to manage the file {\em file}. It manages input if {\em mode}
+is $ReadMode$, output if {\em mode} is $WriteMode$ or $AppendMode$,
+and both input and output if mode is $ReadWriteMode$.
+
+If the file does not exist and it is opened for output, it should be
+created as a new file. If {\em mode} is $WriteMode$ and the file
+already exists, then it should be truncated to zero length. The
+handle is positioned at the end of the file if {\em mode} is
+$AppendMode$, and otherwise at the beginning (in which case its
+internal position is 0).
+
+Implementations should enforce, locally to the Haskell process,
+multiple-reader single-writer locking on files, which is to say that
+there may either be many handles on the same file which manage input,
+or just one handle on the file which manages output. If any open or
+semi-closed handle is managing a file for output, no new handle can be
+allocated for that file. If any open or semi-closed handle is
+managing a file for input, new handles can only be allocated if they
+do not manage output.
+
+Two files are the same if they have the same absolute name. An
+implementation is free to impose stricter conditions.
+
+\begin{code}
+
+hClose :: Handle -> IO ()
+
+hClose handle =
+ takeMVar handle >>= \ htype ->
+ putMVar handle _ClosedHandle >>
+ case htype of
+ _ErrorHandle ioError ->
+ failWith ioError
+ _ClosedHandle ->
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle fp (buf,_) ->
+ (if buf /= ``NULL'' then
+ _ccall_ free buf
+ else
+ returnPrimIO ()) `thenPrimIO` \ () ->
+ if fp /= ``NULL'' then
+ _ccall_ closeFile fp `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+ else
+ return ()
+ other ->
+ _ccall_ closeFile (_filePtr other) `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+Computation $hClose hdl$ makes handle {\em hdl} closed. Before the
+computation finishes, any items buffered for output and not already
+sent to the operating system are flushed as for $flush$.
+
+\subsubsection[EOF]{Detecting the End of Input}
+
+\begin{code}
+
+hFileSize :: Handle -> IO Integer
+
+hFileSize handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "socket handles have no size")
+ other ->
+ -- HACK! We build a unique MP_INT of the right shape to hold
+ -- a single unsigned word, and we let the C routine change the data bits
+ _casm_ ``%r = 1;'' `thenPrimIO` \ (I# hack#) ->
+ case int2Integer# hack# of
+ result@(J# _ _ d#) ->
+ _ccall_ fileSize (_filePtr other) (_ByteArray (error "fileSize") d#)
+ `thenPrimIO` \ rc ->
+ putMVar handle htype `seqPrimIO`
+ if rc == 0 then
+ return result
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+For a handle {\em hdl} which attached to a physical file, $hFileSize
+hdl$ returns the size of {\em hdl} in terms of the number of items
+which can be read from {\em hdl}.
+
+\begin{code}
+
+hIsEOF :: Handle -> IO Bool
+hIsEOF handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _WriteHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for reading")
+ other ->
+ _ccall_ fileEOF (_filePtr other) `thenPrimIO` \ rc ->
+ putMVar handle (_markHandle htype) >>
+ case rc of
+ 0 -> return False
+ 1 -> return True
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+isEOF :: IO Bool
+isEOF = hIsEOF stdin13
+
+\end{code}
+
+For a readable handle {\em hdl}, computation $hIsEOF hdl$ returns
+$True$ if no further input can be taken from {\em hdl} or for a
+physical file, if the current I/O position is equal to the length of
+the file. Otherwise, it returns $False$.
+
+\subsubsection[Buffering]{Buffering Operations}
+
+Three kinds of buffering are supported: line-buffering,
+block-buffering or no-buffering. These modes have the following effects.
+For output, items are written out from the internal buffer
+according to the buffer mode:
+\begin{itemize}
+\item[line-buffering] the entire output buffer is written
+out whenever a newline is output, the output buffer overflows,
+a flush is issued, or the handle is closed.
+
+\item[block-buffering] the entire output buffer is written out whenever
+it overflows, a flush is issued, or the handle
+is closed.
+
+\item[no-buffering] output is written immediately, and never stored
+in the output buffer.
+\end{itemize}
+
+The output buffer is emptied as soon as it has been written out.
+
+Similarly, input occurs according to the buffer mode for handle {\em hdl}.
+\begin{itemize}
+\item[line-buffering] when the input buffer for {\em hdl} is not empty,
+the next item is obtained from the buffer;
+otherwise, when the input buffer is empty,
+characters up to and including the next newline
+character are read into the buffer. No characters
+are available until the newline character is
+available.
+\item[block-buffering] when the input buffer for {\em hdl} becomes empty,
+the next block of data is read into this buffer.
+\item[no-buffering] the next input item is read and returned.
+\end{itemize}
+For most implementations, physical files will normally be block-buffered
+and terminals will normally be line-buffered.
+
+\begin{code}
+
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+
+hSetBuffering :: Handle -> BufferMode -> IO ()
+
+hSetBuffering handle mode =
+ case mode of
+ (BlockBuffering (Just n))
+ | n <= 0 -> failWith (InvalidArgument "illegal buffer size")
+ other ->
+ takeMVar handle >>= \ htype ->
+ if isMarked htype then
+ putMVar handle htype >>
+ failWith (UnsupportedOperation "can't set buffering for a dirty handle")
+ else
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "buffering not supported for socket handles")
+ other ->
+ _ccall_ setBuffering (_filePtr other) bsize
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ putMVar handle ((hcon other) (_filePtr other) (Just mode) True)
+ >>
+ return ()
+ else
+ putMVar handle htype >>
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+ where
+ isMarked :: _Handle -> Bool
+ isMarked (_ReadHandle fp m b) = b
+ isMarked (_WriteHandle fp m b) = b
+ isMarked (_AppendHandle fp m b) = b
+ isMarked (_ReadWriteHandle fp m b) = b
+ isMarked (_SocketHandle fp b) = b
+
+ bsize :: Int
+ bsize = case mode of
+ NoBuffering -> 0
+ LineBuffering -> -1
+ BlockBuffering Nothing -> -2
+ BlockBuffering (Just n) -> n
+
+ hcon :: _Handle -> (_Addr -> (Maybe BufferMode) -> Bool -> _Handle)
+ hcon (_ReadHandle _ _ _) = _ReadHandle
+ hcon (_WriteHandle _ _ _) = _WriteHandle
+ hcon (_AppendHandle _ _ _) = _AppendHandle
+ hcon (_ReadWriteHandle _ _ _) = _ReadWriteHandle
+
+\end{code}
+
+Computation $hSetBuffering hdl mode$ sets the mode of buffering for
+handle {\em hdl} on subsequent reads and writes.
+
+\begin{itemize}
+\item
+If {\em mode} is $LineBuffering$, line-buffering should be
+enabled if possible.
+\item
+If {\em mode} is $BlockBuffering$ {\em size}, then block-buffering
+should be enabled if possible. The size of the buffer is {\em n} items
+if {\em size} is $Just${\em n} and is otherwise implementation-dependent.
+\item
+If {\em mode} is $NoBuffering$, then buffering is disabled if possible.
+\end{itemize}
+
+If the buffer mode is changed from $BlockBuffering$ or $LineBuffering$
+to $NoBuffering$, then any items in the output buffer are written to
+the device, and any items in the input buffer are discarded. The
+default buffering mode when a handle is opened is
+implementation-dependent and may depend on the object which is
+attached to that handle.
+
+\begin{code}
+
+hFlush :: Handle -> IO ()
+
+hFlush handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "flush not supported for socket handles")
+ other ->
+ _ccall_ flushFile (_filePtr other) `thenPrimIO` \ rc ->
+ putMVar handle (_markHandle htype) >>
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+Computation $flush hdl$ causes any items
+buffered for output in handle {\em hdl} to be sent immediately to
+the operating system.
+
+\subsubsection[Seeking]{Repositioning Handles}
+
+\begin{code}
+
+type HandlePosn = (Handle, Int)
+
+hGetPosn :: Handle -> IO HandlePosn
+hGetPosn handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "position not supported for socket handles")
+ other ->
+ _ccall_ getFilePosn (_filePtr other) `thenPrimIO` \ posn ->
+ putMVar handle htype >>
+ if posn /= -1 then
+ return (handle, posn)
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+hSetPosn :: HandlePosn -> IO ()
+hSetPosn (handle, posn) =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not seekable")
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "seek not supported for socket handles")
+ other ->
+ _ccall_ setFilePosn (_filePtr other) posn `thenPrimIO` \ rc ->
+ putMVar handle (_markHandle htype) >>
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+Computation $hGetPosn hdl$ returns the current I/O
+position of {\em hdl} as an abstract position. Computation
+$hSetPosn p$ sets the position of {\em hdl}
+to a previously obtained position {\em p}.
+
+\begin{code}
+
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+
+hSeek :: Handle -> SeekMode -> Integer -> IO ()
+hSeek handle mode offset@(J# _ s# d#) =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not seekable")
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "seek not supported for socket handles")
+ other ->
+ _ccall_ seekFile (_filePtr other) whence (I# s#) (_ByteArray (0,0) d#)
+ `thenPrimIO` \ rc ->
+ putMVar handle (_markHandle htype) >>
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+ where
+ whence :: Int
+ whence = case mode of
+ AbsoluteSeek -> ``SEEK_SET''
+ RelativeSeek -> ``SEEK_CUR''
+ SeekFromEnd -> ``SEEK_END''
+
+\end{code}
+
+Computation $hSeek hdl mode i$ sets the position of handle
+{\em hdl} depending on $mode$. If {\em mode} is
+\begin{itemize}
+\item[{\bf AbsoluteSeek}] The position of {\em hdl} is set to {\em i}.
+\item[{\bf RelativeSeek}] The position of {\em hdl} is set to offset {\em i} from
+the current position.
+\item[{\bf SeekToEnd}] The position of {\em hdl} is set to offset {\em i} from
+the end of the file.
+\item[{\bf SeekFromBeginning}] The position of {\em hdl} is set to offset {\em i} from
+the beginning of the file.
+\end{itemize}
+
+Some handles may not be seekable $hIsSeekable$, or only support a
+subset of the possible positioning operations (e.g. it may only be
+possible to seek to the end of a tape, or to a positive offset from
+the beginning or current position).
+
+It is not possible to set a negative I/O position, or for a physical
+file, an I/O position beyond the current end-of-file.
+
+\subsubsection[Query]{Handle Properties}
+
+\begin{code}
+
+hIsOpen :: Handle -> IO Bool
+hIsOpen handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ return False
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ return False
+ other ->
+ putMVar handle htype >>
+ return True
+
+hIsClosed :: Handle -> IO Bool
+hIsClosed handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ return True
+ other ->
+ putMVar handle htype >>
+ return False
+
+hIsReadable :: Handle -> IO Bool
+hIsReadable handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ other ->
+ putMVar handle htype >>
+ return (isReadable other)
+ where
+ isReadable (_ReadHandle _ _ _) = True
+ isReadable (_ReadWriteHandle _ _ _) = True
+ isReadable (_SocketHandle _ _) = True
+ isReadable _ = False
+
+hIsWritable :: Handle -> IO Bool
+hIsWritable handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ other ->
+ putMVar handle htype >>
+ return (isWritable other)
+ where
+ isWritable (_AppendHandle _ _ _) = True
+ isWritable (_WriteHandle _ _ _) = True
+ isWritable (_ReadWriteHandle _ _ _) = True
+ isWritable _ = False
+
+_getBufferMode :: _Handle -> PrimIO _Handle
+_getBufferMode htype =
+ case _bufferMode htype of
+ Just x -> returnPrimIO htype
+ Nothing ->
+ _ccall_ getBufferMode (_filePtr htype) `thenPrimIO` \ rc ->
+ let
+ mode =
+ case rc of
+ 0 -> Just NoBuffering
+ -1 -> Just LineBuffering
+ -2 -> Just (BlockBuffering Nothing)
+ -3 -> Nothing
+ n -> Just (BlockBuffering (Just n))
+ in
+ returnPrimIO (case htype of
+ _ReadHandle fp _ b -> _ReadHandle fp mode b
+ _WriteHandle fp _ b -> _WriteHandle fp mode b
+ _AppendHandle fp _ b -> _AppendHandle fp mode b
+ _ReadWriteHandle fp _ b -> _ReadWriteHandle fp mode b)
+
+hIsBlockBuffered :: Handle -> IO (Bool,Maybe Int)
+hIsBlockBuffered handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ other ->
+ _getBufferMode other `thenPrimIO` \ other ->
+ case _bufferMode other of
+ Just (BlockBuffering size) ->
+ putMVar handle other >>
+ return (True, size)
+ Just _ ->
+ putMVar handle other >>
+ return (False, Nothing)
+ Nothing ->
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+hIsLineBuffered :: Handle -> IO Bool
+hIsLineBuffered handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ other ->
+ _getBufferMode other `thenPrimIO` \ other ->
+ case _bufferMode other of
+ Just LineBuffering ->
+ putMVar handle other >>
+ return True
+ Just _ ->
+ putMVar handle other >>
+ return False
+ Nothing ->
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+hIsNotBuffered :: Handle -> IO Bool
+hIsNotBuffered handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ other ->
+ _getBufferMode other `thenPrimIO` \ other ->
+ case _bufferMode other of
+ Just NoBuffering ->
+ putMVar handle other >>
+ return True
+ Just _ ->
+ putMVar handle other >>
+ return False
+ Nothing ->
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+hIsSeekable :: Handle -> IO Bool
+hIsSeekable handle =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _AppendHandle _ _ _ ->
+ putMVar handle htype >>
+ return False
+ _SocketHandle _ _ ->
+ putMVar handle htype >>
+ return False
+ other ->
+ _ccall_ seekFileP (_filePtr other) `thenPrimIO` \ rc ->
+ putMVar handle htype >>
+ case rc of
+ 0 -> return False
+ 1 -> return True
+ _ -> _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+
+\end{code}
+
+A number of operations return information about the properties of a
+handle. Each of these operations returns $True$ if the
+handle has the specified property, and $False$
+otherwise.
+
+Computation $hIsBlockBuffered hdl$ returns $( False, Nothing )$ if
+{\em hdl} is not block-buffered. Otherwise it returns
+$( True, size )$, where {\em size} is $Nothing$ for default buffering, and
+$( Just n )$ for block-buffering of {\em n} bytes.
+
diff --git a/ghc/lib/prelude/PreludeStdIO_mc.hi b/ghc/lib/prelude/PreludeStdIO_mc.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_mc.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO_mg.hi b/ghc/lib/prelude/PreludeStdIO_mg.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_mg.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO_mp.hi b/ghc/lib/prelude/PreludeStdIO_mp.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_mp.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO_mr.hi b/ghc/lib/prelude/PreludeStdIO_mr.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_mr.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO_mt.hi b/ghc/lib/prelude/PreludeStdIO_mt.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_mt.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO_p.hi b/ghc/lib/prelude/PreludeStdIO_p.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_p.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeStdIO_t.hi b/ghc/lib/prelude/PreludeStdIO_t.hi
new file mode 100644
index 0000000000..8a2baa35c5
--- /dev/null
+++ b/ghc/lib/prelude/PreludeStdIO_t.hi
@@ -0,0 +1,72 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeStdIO where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, _Addr(..), _RealWorld(..), _State(..))
+import PreludeCore(Bool(..), Eq(..), Ord(..), Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
+type FilePath = [Char]
+type Handle = _MVar _Handle
+type HandlePosn = (_MVar _Handle, Int)
+data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
+data Maybe a = Nothing | Just a
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+data _Handle = _ErrorHandle IOError13 | _ClosedHandle | _SemiClosedHandle _Addr (_Addr, Int) | _ReadHandle _Addr (Maybe BufferMode) Bool | _WriteHandle _Addr (Maybe BufferMode) Bool | _AppendHandle _Addr (Maybe BufferMode) Bool | _ReadWriteHandle _Addr (Maybe BufferMode) Bool | _SocketHandle _Addr Bool
+_bufferMode :: _Handle -> Maybe BufferMode
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_filePtr :: _Handle -> _Addr
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_getBufferMode :: _Handle -> _State _RealWorld -> (_Handle, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_markHandle :: _Handle -> _Handle
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+hClose :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFileSize :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hFlush :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hGetPosn :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (_MVar _Handle, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsBlockBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 (Bool, Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsClosed :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsEOF :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsLineBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsNotBuffered :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsOpen :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsReadable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsSeekable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hIsWritable :: _MVar _Handle -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSeek :: _MVar _Handle -> SeekMode -> Integer -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)LU(PPP)U(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetBuffering :: _MVar _Handle -> BufferMode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hSetPosn :: (_MVar _Handle, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P)L)U(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isEOF :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 4 \ (u0 :: State# _RealWorld) -> case _ORIG_ PreludeStdIO stdin13 of { _ALG_ _MVar (u1 :: SynchVar# _RealWorld _Handle) -> _APP_ _WRKR_ _ORIG_ PreludeStdIO hIsEOF [ u1, u0 ]; _NO_DEFLT_ } _N_} _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: _State _RealWorld) -> _APP_ _ORIG_ PreludeStdIO hIsEOF [ _ORIG_ PreludeStdIO stdin13, u0 ] _N_ #-}
+openFile :: [Char] -> IOMode -> _State _RealWorld -> (Either IOError13 (_MVar _Handle), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stderr13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout13 :: _MVar _Handle
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ #-}
+instance Ord a => Ord (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Text a => Text (Maybe a)
+ {-# GHC_PRAGMA _M_ PreludeStdIO {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO.hi b/ghc/lib/prelude/PreludeWriteTextIO.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO.lhs b/ghc/lib/prelude/PreludeWriteTextIO.lhs
new file mode 100644
index 0000000000..000c343637
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO.lhs
@@ -0,0 +1,190 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1994
+%
+\section[PrelWriteTextIO]{Haskell 1.3 Text Output}
+
+This module defines the standard set of output operations for writing
+characters and strings to text files, using
+$handles$
+
+\begin{code}
+module PreludeWriteTextIO (
+ hPutChar,
+ putChar,
+ hPutStr,
+ putStr,
+ hPutText,
+ putText,
+ print13,
+ writeFile13,
+ appendFile13
+ ) where
+
+import Cls
+import Core
+import IChar
+import IInt
+import IList
+import List ( splitAt, (++) )
+import Prel ( ord, (.), otherwise )
+import Text
+import TyArray -- instance _CCallable (_ByteArray a)
+
+import PreludeIOError
+import PreludeMonadicIO
+import PreludePrimIO
+import PreludeGlaST
+import PreludeStdIO
+import PS
+
+hPutChar :: Handle -> Char -> IO ()
+hPutChar handle c =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _ReadHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for writing")
+ other ->
+ _ccall_ filePutc (_filePtr other) (ord c) `thenPrimIO` \ rc ->
+ putMVar handle (_markHandle htype) >>
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+putChar :: Char -> IO ()
+putChar = hPutChar stdout13
+
+\end{code}
+
+Computation $hPutChar hdl c$ writes the character {\em c} to the file
+or channel managed by {\em hdl}. Characters may be buffered if
+buffering is enabled for {\em hdl}.
+
+\begin{code}
+hPutStr :: Handle -> String -> IO ()
+hPutStr handle str =
+ takeMVar handle >>= \ htype ->
+ case htype of
+ _ErrorHandle ioError ->
+ putMVar handle htype >>
+ failWith ioError
+ _ClosedHandle ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is closed")
+ _ReadHandle _ _ _ ->
+ putMVar handle htype >>
+ failWith (IllegalOperation "handle is not open for writing")
+ other ->
+ _getBufferMode other `thenPrimIO` \ other ->
+ (case _bufferMode other of
+ Just LineBuffering ->
+ writeLines (_filePtr other) str
+ Just (BlockBuffering (Just size)) ->
+ writeBlocks (_filePtr other) size str
+ Just (BlockBuffering Nothing) ->
+ writeBlocks (_filePtr other) ``BUFSIZ'' str
+ _ -> -- Nothing is treated pessimistically as NoBuffering
+ writeChars (_filePtr other) str
+ ) `thenPrimIO` \ success ->
+ putMVar handle (_markHandle other) `seqPrimIO`
+ if success then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+ where
+
+ writeBlocks :: _Addr -> Int -> String -> PrimIO Bool
+ writeBlocks fp size "" = returnPrimIO True
+ writeBlocks fp size s =
+ let
+ (some, more) = splitAt size s
+ in
+ _packBytesForCST some `thenPrimIO`
+ \ bytes@(_ByteArray (0, count) _) ->
+ _ccall_ writeFile bytes fp (count+1) `thenPrimIO` \ rc ->
+ if rc == 0 then
+ writeBlocks fp size more
+ else
+ returnPrimIO False
+
+ writeLines :: _Addr -> String -> PrimIO Bool
+ writeLines fp "" = returnPrimIO True
+ writeLines fp s =
+ let
+ (some, more) = breakLine s
+ in
+ _packBytesForCST some `thenPrimIO`
+ \ bytes@(_ByteArray (0, count) _) ->
+ _ccall_ writeFile bytes fp (count+1) `thenPrimIO` \ rc ->
+ if rc == 0 then
+ writeLines fp more
+ else
+ returnPrimIO False
+ where
+ breakLine "" = ("","")
+ breakLine (x:xs)
+ | x == '\n' = ([x],xs)
+ | otherwise = let (ys,zs) = breakLine xs in (x:ys,zs)
+
+ writeChars :: _Addr -> String -> PrimIO Bool
+ writeChars fp "" = returnPrimIO True
+ writeChars fp (c:cs) =
+ _ccall_ filePutc fp (ord c) `thenPrimIO` \ rc ->
+ if rc == 0 then
+ writeChars fp cs
+ else
+ returnPrimIO False
+
+putStr :: String -> IO ()
+putStr = hPutStr stdout13
+
+hPutText :: Text a => Handle -> a -> IO ()
+hPutText hdl = hPutStr hdl . show
+
+putText :: Text a => a -> IO ()
+putText = hPutText stdout13
+
+print13 :: Text a => a -> IO ()
+print13 x = putText x >> putChar '\n'
+
+\end{code}
+
+Computation $hPutStr hdl s$ writes the string {\em s} to the file or
+channel managed by {\em hdl}.
+
+Computation $putStr s$ writes the string {\em s} to $stdout$.
+
+Computation $hPutText hdl t$ writes the string representation of {\em
+t} given by the $shows$ function to the file or channel managed by
+{\em hdl}.
+
+\begin{code}
+
+writeFile13 :: FilePath -> String -> IO ()
+writeFile13 name str =
+ openFile name WriteMode >>= \hdl -> hPutStr hdl str >> hClose hdl
+
+appendFile13 :: FilePath -> String -> IO ()
+appendFile13 name str =
+ openFile name AppendMode >>= \hdl -> hPutStr hdl str >> hClose hdl
+
+\end{code}
+
+$writeFile file s$ replaces the contents of {\em file} by the string
+{\em s}. $appendFile file s$ appends string {\em s} to {\em file}.
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_mc.hi b/ghc/lib/prelude/PreludeWriteTextIO_mc.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_mc.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_mg.hi b/ghc/lib/prelude/PreludeWriteTextIO_mg.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_mg.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_mp.hi b/ghc/lib/prelude/PreludeWriteTextIO_mp.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_mp.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_mr.hi b/ghc/lib/prelude/PreludeWriteTextIO_mr.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_mr.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_mt.hi b/ghc/lib/prelude/PreludeWriteTextIO_mt.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_mt.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_p.hi b/ghc/lib/prelude/PreludeWriteTextIO_p.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_p.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/PreludeWriteTextIO_t.hi b/ghc/lib/prelude/PreludeWriteTextIO_t.hi
new file mode 100644
index 0000000000..e5c71c3c54
--- /dev/null
+++ b/ghc/lib/prelude/PreludeWriteTextIO_t.hi
@@ -0,0 +1,27 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeWriteTextIO where
+import PreludeBuiltin(Char(..), List(..), Tuple0, Tuple2, _RealWorld(..), _State(..))
+import PreludeCore(Text(..))
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(_Handle)
+appendFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutChar :: _MVar _Handle -> Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutStr :: _MVar _Handle -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+hPutText :: Text a => _MVar _Handle -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1121 _N_ _N_ _N_ _N_ #-}
+print13 :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+putChar :: Char -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutChar [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putStr :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _ORIG_ PreludeWriteTextIO hPutStr [ _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+putText :: Text a => a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 3 _/\_ u0 -> \ (u1 :: {{Text u0}}) -> _APP_ _TYAPP_ _ORIG_ PreludeWriteTextIO hPutText { u0 } [ u1, _ORIG_ PreludeStdIO stdout13 ] _N_ #-}
+writeFile13 :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Prelude_mc.hi b/ghc/lib/prelude/Prelude_mc.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_mc.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Prelude_mg.hi b/ghc/lib/prelude/Prelude_mg.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_mg.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Prelude_mp.hi b/ghc/lib/prelude/Prelude_mp.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_mp.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Prelude_mr.hi b/ghc/lib/prelude/Prelude_mr.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_mr.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Prelude_mt.hi b/ghc/lib/prelude/Prelude_mt.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_mt.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Prelude_p.hi b/ghc/lib/prelude/Prelude_p.hi
new file mode 100644
index 0000000000..44a861cd37
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_p.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Prelude_t.hi b/ghc/lib/prelude/Prelude_t.hi
new file mode 100644
index 0000000000..fbce1ccdea
--- /dev/null
+++ b/ghc/lib/prelude/Prelude_t.hi
@@ -0,0 +1,463 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Prelude where
+import PreludeArray((!), (//), Array, Assoc, _ByteArray, accum, accumArray, amap, array, assocs, bounds, elems, indices, ixmap, listArray)
+import PreludeBuiltin(Bin, Char(..), Int(..), Integer(..), List(..), Tuple0, Tuple2, Tuple3, Tuple4, Tuple5, Tuple6, Tuple7, _Addr(..), _RealWorld(..), _State(..))
+import PreludeComplex(Complex, cis, conjugate, imagPart, magnitude, mkPolar, phase, polar, realPart)
+import PreludeCore(Bool(..), Eq(..), Fractional(..), Integral(..), Ix(..), Num(..), Ord(..), Real(..), RealFloat(..), RealFrac(..), Text(..), _ceiling, _floor, _readList, _round, _showList, _showRational, _truncate)
+import PreludeIO(IOError, Request, Response, SigAct, abort, appendBinChan, appendBinFile, appendChan, appendFile, binDispatch, deleteFile, done, echo, exit, getArgs, getEnv, getProgName, interact, print, prints, readBinChan, readBinFile, readChan, readFile, setEnv, sigAction, statusChan, statusFile, stdecho, stderr, stdin, stdout, strDispatch, strListDispatch, succDispatch, writeBinFile, writeFile)
+import PreludeList((!!), (++), (\\), all, and, any, break, concat, cycle, drop, dropWhile, elem, filter, foldl1, foldr1, genericLength, head, init, iterate, last, length, lines, map, maximum, minimum, notElem, nub, null, or, partition, product, products, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, sum, sums, tail, take, takeWhile, transpose, unlines, unwords, unzip, unzip3, unzip4, unzip5, unzip6, unzip7, words, zip, zip3, zip4, zip5, zip6, zip7, zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7)
+import PreludePS(_PackedString, _appendPS, _breakPS, _byteArrayToPS, _concatPS, _consPS, _dropPS, _dropWhilePS, _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS, _linesPS, _mapPS, _nilPS, _nullPS, _packCBytes, _packCString, _packString, _psToByteArray, _putPS, _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS, _takeWhilePS, _unpackPS, _wordsPS)
+import PreludeRatio((%), Ratio(..), approxRational, denominator, numerator)
+import PreludeText(_readRational, _showDigit, _showHex, _showRadix, lex, read, readDec, readFloat, readLitChar, readParen, readSigned, reads, show, showChar, showFloat, showInt, showLitChar, showParen, showSigned, showSpace__, showString, shows)
+import Stdio(_FILE)
+($) :: (a -> b) -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _F_ _IF_ARGS_ 2 2 XX 2 _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: u0) -> _APP_ u2 [ u3 ] _N_ #-}
+(&&) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> u1; False -> _!_ False [] []; _NO_DEFLT_ } _N_ #-}
+(.) :: (a -> c) -> (b -> a) -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "SLL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u2) (u4 :: u1 -> u0) (u5 :: u1) -> let {(u6 :: u0) = _APP_ u4 [ u5 ]} in _APP_ u3 [ u6 ] _N_ #-}
+(^) :: (Num b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(U(LU(U(U(SA)AALAAAA)AAAA)A)AAALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Int ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, Integer ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Complex Double) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(^^) :: (Fractional b, Integral a) => b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 2122 _N_ _S_ "LU(LU(U(AAASAAAA)AAA)AALAAAALAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, Double ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int, (Ratio Integer) ] 2 { _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+appendBin :: Bin -> Bin -> Bin
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Bin) (u1 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bin -> Bin) } [ _NOREP_S_ "appendBin{Prelude}\n", u0, u1 ] _N_ #-}
+asTypeOf :: a -> a -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_ _TYAPP_ _ORIG_ Prelude const { u0 } { u0 } _N_ #-}
+atan2 :: RealFloat a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 2212222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+chr :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ chr# [] [u0] of { _PRIM_ (u1 :: Char#) -> _!_ C# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ chr# [] [u1] of { _PRIM_ (u2 :: Char#) -> _!_ C# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+const :: b -> a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 10 _N_ _S_ "SA" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 2 XX 1 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u0) -> u2 _N_ #-}
+flip :: (b -> a -> c) -> a -> b -> c
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _F_ _IF_ARGS_ 3 3 XXX 3 _/\_ u0 u1 u2 -> \ (u3 :: u1 -> u0 -> u2) (u4 :: u0) (u5 :: u1) -> _APP_ u3 [ u5, u4 ] _N_ #-}
+fromIntegral :: (Integral a, Num b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAAAAAASA)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 6 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: Integer -> u1) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in _APP_ u3 [ uh ] _N_} _F_ _IF_ARGS_ 2 3 CCX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: {{Num u1}}) (u4 :: u0) -> let {(uh :: Integer) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ uf [ u4 ]; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_10 (ui :: {{Eq u1}}) (uj :: {{Text u1}}) (uk :: u1 -> u1 -> u1) (ul :: u1 -> u1 -> u1) (um :: u1 -> u1 -> u1) (un :: u1 -> u1) (uo :: u1 -> u1) (up :: u1 -> u1) (uq :: Integer -> u1) (ur :: Int -> u1) -> _APP_ uq [ uh ]; _NO_DEFLT_ } _SPECIALISE_ [ Int, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Int#) -> case _#_ int2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> case _#_ int2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Int, Int ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Int } _N_ }, [ Int, Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: Int#) -> _#_ int2Integer# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: Int) -> case u0 of { _ALG_ I# (u1 :: Int#) -> _#_ int2Integer# [] [u1]; _NO_DEFLT_ } _N_ }, [ Integer, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ encodeDouble# [] [u0, u1, u2, 0#] of { _PRIM_ (u3 :: Double#) -> _!_ D# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ encodeDouble# [] [u1, u2, u3, 0#] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Int ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 3 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) -> case _#_ integer2Int# [] [u0, u1, u2] of { _PRIM_ (u3 :: Int#) -> _!_ I# [] [u3] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Integer) -> case u0 of { _ALG_ J# (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ } _N_ }, [ Integer, Integer ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Integer } _N_ } #-}
+fromRealFrac :: (RealFrac a, Fractional b) => a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "LU(AAAS)L" {_A_ 3 _U_ 112 _N_ _N_ _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: Ratio Integer -> u1) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u3 [ uf ] _N_} _F_ _IF_ARGS_ 2 3 CCX 8 _/\_ u0 u1 -> \ (u2 :: {{RealFrac u0}}) (u3 :: {{Fractional u1}}) (u4 :: u0) -> let {(uf :: Ratio Integer) = case u2 of { _ALG_ _TUP_7 (u5 :: {{Real u0}}) (u6 :: {{Fractional u0}}) (u7 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> (a$z1, u0)) (u8 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (u9 :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ua :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) (ub :: _forall_ a$z1 =>{{Integral a$z1}} -> u0 -> a$z1) -> case u5 of { _ALG_ _TUP_3 (uc :: {{Num u0}}) (ud :: {{Enum u0}}) (ue :: u0 -> Ratio Integer) -> _APP_ ue [ u4 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in case u3 of { _ALG_ _TUP_4 (ug :: {{Num u1}}) (uh :: u1 -> u1 -> u1) (ui :: u1 -> u1) (uj :: Ratio Integer -> u1) -> _APP_ uj [ uf ]; _NO_DEFLT_ } _SPECIALISE_ [ Double, Double ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Double } _N_ }, [ Double, Float ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Double#) -> case _#_ double2Float# [] [u0] of { _PRIM_ (u1 :: Float#) -> _!_ F# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Double) -> case u0 of { _ALG_ D# (u1 :: Double#) -> case _#_ double2Float# [] [u1] of { _PRIM_ (u2 :: Float#) -> _!_ F# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Double ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Float#) -> case _#_ float2Double# [] [u0] of { _PRIM_ (u1 :: Double#) -> _!_ D# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Float) -> case u0 of { _ALG_ F# (u1 :: Float#) -> case _#_ float2Double# [] [u1] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] }; _NO_DEFLT_ } _N_ }, [ Float, Float ] 2 { _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ Prelude id { Float } _N_ } #-}
+fst :: (b, a) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u1, u0)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u1) (u4 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+gcd :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAAAALAAL)AA)AALAAAAAAAA)" {_A_ 4 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)U(PPP)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+id :: a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_ #-}
+isAlpha :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAlphanum :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isAscii :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _#_ ltInt# [] [u1, 128#] } _N_} _F_ _IF_ARGS_ 0 1 C 3 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _#_ ltInt# [] [u2, 128#] }; _NO_DEFLT_ } _N_ #-}
+isControl :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDigit :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isLower :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNullBin :: Bin -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Bin) -> _APP_ _TYAPP_ error { (Bin -> Bool) } [ _NOREP_S_ "isNullBin{Prelude}\n", u0 ] _N_ #-}
+isPrint :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isSpace :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isUpper :: Char -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lcm :: Integral a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALAAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+maxChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o377'#] _N_ #-}
+maxInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2147483647#] _N_ #-}
+minChar :: Char
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ C# [] ['\o0'#] _N_ #-}
+minInt :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [-2147483647#] _N_ #-}
+not :: Bool -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _ALWAYS_ \ (u0 :: Bool) -> case u0 of { _ALG_ True -> _!_ False [] []; False -> _!_ True [] []; _NO_DEFLT_ } _N_ #-}
+nullBin :: Bin
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _S_ _!_ _F_ _IF_ARGS_ 0 0 X 2 _APP_ _TYAPP_ error { Bin } [ _NOREP_S_ "nullBin{Prelude}\n" ] _N_ #-}
+ord :: Char -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 3 \ (u0 :: Char#) -> case _#_ ord# [] [u0] of { _PRIM_ (u1 :: Int#) -> _!_ I# [] [u1] } _N_} _F_ _IF_ARGS_ 0 1 C 4 \ (u0 :: Char) -> case u0 of { _ALG_ C# (u1 :: Char#) -> case _#_ ord# [] [u1] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] }; _NO_DEFLT_ } _N_ #-}
+otherwise :: Bool
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _ALWAYS_ _!_ True [] [] _N_ #-}
+snd :: (a, b) -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 2 1 X 1 _/\_ u0 u1 -> \ (u2 :: u1) -> u2 _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: (u0, u1)) -> case u2 of { _ALG_ _TUP_2 (u3 :: u0) (u4 :: u1) -> u4; _NO_DEFLT_ } _N_ #-}
+subtract :: Num a => a -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(AAASAAAAAA)LL" {_A_ 3 _U_ 122 _N_ _N_ _F_ _IF_ARGS_ 1 3 XXX 3 _/\_ u0 -> \ (u1 :: u0 -> u0 -> u0) (u2 :: u0) (u3 :: u0) -> _APP_ u1 [ u3, u2 ] _N_} _F_ _IF_ARGS_ 1 3 CXX 4 _/\_ u0 -> \ (u1 :: {{Num u0}}) (u2 :: u0) (u3 :: u0) -> case u1 of { _ALG_ _TUP_10 (u4 :: {{Eq u0}}) (u5 :: {{Text u0}}) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0) (ua :: u0 -> u0) (ub :: u0 -> u0) (uc :: Integer -> u0) (ud :: Int -> u0) -> _APP_ u7 [ u3, u2 ]; _NO_DEFLT_ } _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Double#) (u1 :: Double#) -> case _#_ minusDouble# [] [u1, u0] of { _PRIM_ (u2 :: Double#) -> _!_ D# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Double) (u1 :: Double) -> case u1 of { _ALG_ D# (u2 :: Double#) -> case u0 of { _ALG_ D# (u3 :: Double#) -> case _#_ minusDouble# [] [u2, u3] of { _PRIM_ (u4 :: Double#) -> _!_ D# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ }, [ Int ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Int#) (u1 :: Int#) -> case _#_ minusInt# [] [u1, u0] of { _PRIM_ (u2 :: Int#) -> _!_ I# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: Int) (u1 :: Int) -> case u1 of { _ALG_ I# (u2 :: Int#) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case _#_ minusInt# [] [u2, u3] of { _PRIM_ (u4 :: Int#) -> _!_ I# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ } #-}
+toLower :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toUpper :: Char -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+until :: (a -> Bool) -> (a -> a) -> a -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SLL" _N_ _N_ #-}
+(||) :: Bool -> Bool -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EL" _F_ _ALWAYS_ \ (u0 :: Bool) (u1 :: Bool) -> case u0 of { _ALG_ True -> _!_ True [] []; False -> u1; _NO_DEFLT_ } _N_ #-}
+(!) :: Ix a => Array a b -> a -> b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(AASA)U(LP)L" {_A_ 4 _U_ 1222 _N_ _N_ _F_ _IF_ARGS_ 2 4 XXXX 7 _/\_ u0 u1 -> \ (u2 :: (u0, u0) -> u0 -> Int) (u3 :: (u0, u0)) (u4 :: Array# u1) (u5 :: u0) -> case _APP_ u2 [ u3, u5 ] of { _ALG_ I# (u6 :: Int#) -> case _#_ indexArray# [u1] [u4, u6] of { _ALG_ _Lift (u7 :: u1) -> u7; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: {{Ix u0}}) (u3 :: Array u0 u1) (u4 :: u0) -> case u2 of { _ALG_ _TUP_4 (u5 :: {{Ord u0}}) (u6 :: (u0, u0) -> [u0]) (u7 :: (u0, u0) -> u0 -> Int) (u8 :: (u0, u0) -> u0 -> Bool) -> case u3 of { _ALG_ _Array (u9 :: (u0, u0)) (ua :: Array# u1) -> case _APP_ u7 [ u9, u4 ] of { _ALG_ I# (ub :: Int#) -> case _#_ indexArray# [u1] [ua, ub] of { _ALG_ _Lift (uc :: u1) -> uc; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(U(P)U(P))P)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(SS)P)U(U(P)U(P))" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(//) :: Ix a => Array a b -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(U(P)U(P))P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(SS)P)S" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+accum :: Ix b => (c -> a -> c) -> Array b c -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 1222 _N_ _S_ "U(ASLA)" {_A_ 2 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 3 _U_ 222 _N_ _N_ _N_ _N_ } #-}
+accumArray :: Ix b => (c -> a -> c) -> c -> (b, b) -> [Assoc b a] -> Array b c
+ {-# GHC_PRAGMA _A_ 5 _U_ 22222 _N_ _S_ "U(ASLA)LLLL" _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 4 _U_ 2222 _N_ _N_ _N_ _N_ } #-}
+amap :: Ix b => (a -> c) -> Array b a -> Array b c
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ _N_, Int, _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(U(P)U(P))P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int), _N_ ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LU(U(SS)P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+array :: Ix a => (a, a) -> [Assoc a b] -> Array a b
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(ASLA)U(LL)S" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(U(P)U(P))S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(SS)S" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+assocs :: Ix a => Array a b -> [Assoc a b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+bounds :: Array b a -> (b, b)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(LL)P)" {_A_ 3 _U_ 220 _N_ _N_ _F_ _IF_ARGS_ 2 3 XXX 3 _/\_ u0 u1 -> \ (u2 :: u1) (u3 :: u1) (u4 :: Array# u0) -> _!_ _TUP_2 [u1, u1] [u2, u3] _N_} _F_ _IF_ARGS_ 2 1 C 2 _/\_ u0 u1 -> \ (u2 :: Array u1 u0) -> case u2 of { _ALG_ _Array (u3 :: (u1, u1)) (u4 :: Array# u0) -> u3; _NO_DEFLT_ } _N_ #-}
+elems :: Ix a => Array a b -> [b]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASLA)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+indices :: Ix b => Array b a -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(ASAA)L" {_A_ 2 _U_ 11 _N_ _N_ _F_ _IF_ARGS_ 2 2 XC 5 _/\_ u0 u1 -> \ (u2 :: (u1, u1) -> [u1]) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in _APP_ u2 [ u6 ] _N_} _F_ _IF_ARGS_ 2 2 CC 6 _/\_ u0 u1 -> \ (u2 :: {{Ix u1}}) (u3 :: Array u1 u0) -> let {(u6 :: (u1, u1)) = case u3 of { _ALG_ _Array (u4 :: (u1, u1)) (u5 :: Array# u0) -> u4; _NO_DEFLT_ }} in case u2 of { _ALG_ _TUP_4 (u7 :: {{Ord u1}}) (u8 :: (u1, u1) -> [u1]) (u9 :: (u1, u1) -> u1 -> Int) (ua :: (u1, u1) -> u1 -> Bool) -> _APP_ u8 [ u6 ]; _NO_DEFLT_ } _SPECIALISE_ [ _N_, Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ }, [ _N_, (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(SS)P)" {_A_ 3 _U_ 220 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+ixmap :: (Ix b, Ix a) => (b, b) -> (b -> a) -> Array a c -> Array b c
+ {-# GHC_PRAGMA _A_ 2 _U_ 12222 _N_ _S_ "U(ASLA)L" {_A_ 6 _U_ 222222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+listArray :: Ix a => (a, a) -> [b] -> Array a b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASLA)" {_A_ 4 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(U(P)U(P))L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Int, Int), _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(SS)L" {_A_ 3 _U_ 221 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+cis :: RealFloat a => a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+conjugate :: RealFloat a => Complex a -> Complex a
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(LL)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+imagPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+magnitude :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ALAAAAALAS)" {_A_ 3 _U_ 2221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+mkPolar :: RealFloat a => a -> a -> Complex a
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+phase :: RealFloat a => Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(U(U(AU(U(ALAASAAA)AAAA)A)AAAAAA)U(U(SLAA)LAAAAAAAAAALAAAAAA)AAAAAAAA)" {_A_ 5 _U_ 222221 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P))" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+polar :: RealFloat a => Complex a -> (a, a)
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+realPart :: Complex a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Complex u0) -> case u1 of { _ALG_ (:+) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_ceiling :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(AAAASAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_floor :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ASAAAAAA)AAAA)A)LSAAAA)L" {_A_ 4 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+_readList :: Text a => [Char] -> [([a], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_round :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(U(AU(U(ALAAAAAS)AAAA)A)LSAAAA)L" {_A_ 5 _U_ 112122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ (Ratio Integer), Integer ] 2 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+_showList :: Text a => [a] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 212 _N_ _N_ _N_ _N_ #-}
+_showRational :: Int -> Ratio Integer -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_truncate :: (RealFrac a, Integral b) => a -> b
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "U(AASAAAA)L" {_A_ 2 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double, Int ] 2 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+abort :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ "A" {_A_ 1 _U_ 0 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: IOError) -> _ORIG_ PreludeIO done _N_ #-}
+appendBinChan :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendChan :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+appendFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+binDispatch :: (IOError -> [Response] -> a) -> (Bin -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+deleteFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+done :: [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 0 _N_ _S_ "A" {_A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _!_ _NIL_ [Request] [] _N_} _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Response]) -> _!_ _NIL_ [Request] [] _N_ #-}
+echo :: Bool -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+exit :: IOError -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+getArgs :: (IOError -> [Response] -> [Request]) -> ([[Char]] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+getEnv :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+getProgName :: (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _N_ _N_ _N_ #-}
+interact :: ([Char] -> [Char]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+print :: Text a => a -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
+prints :: Text a => a -> [Char] -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1221 _N_ _N_ _N_ _N_ #-}
+readBinChan :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readBinFile :: [Char] -> (IOError -> [Response] -> [Request]) -> (Bin -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+readFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+setEnv :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+sigAction :: Int -> SigAct -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+statusChan :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+statusFile :: [Char] -> (IOError -> [Response] -> [Request]) -> ([Char] -> [Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _N_ _N_ _N_ #-}
+stdecho :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stderr :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdin :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdout :: [Char]
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+strDispatch :: (IOError -> [Response] -> a) -> ([Char] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+strListDispatch :: (IOError -> [Response] -> a) -> ([[Char]] -> [Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+succDispatch :: (IOError -> [Response] -> a) -> ([Response] -> a) -> [Response] -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LLS" _N_ _N_ #-}
+writeBinFile :: [Char] -> Bin -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+writeFile :: [Char] -> [Char] -> (IOError -> [Response] -> [Request]) -> ([Response] -> [Request]) -> [Response] -> [Request]
+ {-# GHC_PRAGMA _A_ 5 _U_ 22111 _N_ _N_ _N_ _N_ #-}
+(!!) :: Integral a => [b] -> a -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(ASAAAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11112 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "SU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+(++) :: [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "SL" _N_ _N_ #-}
+(\\) :: Eq a => [a] -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "LLS" _N_ _N_ #-}
+all :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ True [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> u5; False -> _!_ False [] []; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+and :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ True [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (&&), u1, u0 ] _N_ #-}
+any :: (a -> Bool) -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u3 :: Bool) = _!_ False [] []} in let {(u6 :: u0 -> Bool -> Bool) = \ (u4 :: u0) (u5 :: Bool) -> case _APP_ u1 [ u4 ] of { _ALG_ True -> _!_ True [] []; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u6, u3, u2 ] _N_ #-}
+break :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+concat :: [[a]] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [[u0]]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: [u0] -> u2 -> u2) = \ (u5 :: [u0]) (u6 :: u2) -> _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [u0] } { u2 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+cycle :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u2 } [ u3, u5, u1 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+drop :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LS" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)S" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)S" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList drop [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+dropWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+elem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u4; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ eqChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ eqInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList any { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (==) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList any { [Char] } [ u3, u1 ] _N_ } #-}
+filter :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u7; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+foldl1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+foldr1 :: (a -> a -> a) -> [a] -> a
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+genericLength :: Num b => [a] -> b
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+head :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: u0) = _APP_ _TYAPP_ error { u0 } [ _NOREP_S_ "head{PreludeList}: head []\n" ]} in let {(u5 :: u0 -> u0 -> u0) = \ (u3 :: u0) (u4 :: u0) -> u3} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u0 } [ u5, u2, u1 ] _N_ #-}
+init :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+iterate :: (a -> a) -> a -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> u0) (u2 :: u0) -> let {(ub :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> _LETREC_ {(u6 :: (u0 -> u0) -> u0 -> u3) = \ (u7 :: u0 -> u0) (u8 :: u0) -> let {(ua :: u3) = let {(u9 :: u0) = _APP_ u7 [ u8 ]} in _APP_ u6 [ u7, u9 ]} in _APP_ u4 [ u8, ua ]} in _APP_ u6 [ u1, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ ub ] _N_ #-}
+last :: [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+length :: [a] -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+lines :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+map :: (a -> b) -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: u0 -> u1) (u3 :: [u0]) -> let {(ua :: _forall_ a$z1 =>(u1 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u4 -> \ (u5 :: u1 -> u4 -> u4) (u6 :: u4) -> let {(u9 :: u0 -> u4 -> u4) = \ (u7 :: u0) -> let {(u8 :: u1) = _APP_ u2 [ u7 ]} in _APP_ u5 [ u8 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u4 } [ u9, u6, u3 ]} in _APP_ _TYAPP_ _build { u1 } [ ua ] _N_ #-}
+maximum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+minimum :: Ord a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
+notElem :: Eq a => a -> [a] -> Bool
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "LLS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Eq u0}}) (u2 :: u0) (u3 :: [u0]) -> let {(u6 :: u0 -> u0 -> Bool) = case u1 of { _ALG_ _TUP_2 (u4 :: u0 -> u0 -> Bool) (u5 :: u0 -> u0 -> Bool) -> u5; _NO_DEFLT_ }} in let {(u8 :: u0 -> Bool) = \ (u7 :: u0) -> _APP_ u6 [ u2, u7 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { u0 } [ u8, u3 ] _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Char) (u1 :: [Char]) -> let {(u5 :: Char -> Bool) = \ (u2 :: Char) -> case u0 of { _ALG_ C# (u3 :: Char#) -> case u2 of { _ALG_ C# (u4 :: Char#) -> _#_ neChar# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Char } [ u5, u1 ] _N_ }, [ Int ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: [Int]) -> let {(u5 :: Int -> Bool) = \ (u2 :: Int) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u2 of { _ALG_ I# (u4 :: Int#) -> _#_ neInt# [] [u3, u4]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ _TYAPP_ _ORIG_ PreludeList all { Int } [ u5, u1 ] _N_ }, [ [Char] ] 1 { _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ \ (u0 :: [Char]) (u1 :: [[Char]]) -> let {(u3 :: [Char] -> Bool) = \ (u2 :: [Char]) -> _APP_ _CONSTM_ Eq (/=) ([Char]) [ u0, u2 ]} in _APP_ _TYAPP_ _ORIG_ PreludeList all { [Char] } [ u3, u1 ] _N_ } #-}
+nub :: Eq a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LS" _N_ _N_ #-}
+null :: [a] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u2 :: Bool) = _!_ True [] []} in let {(u5 :: u0 -> Bool -> Bool) = \ (u3 :: u0) (u4 :: Bool) -> _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { Bool } [ u5, u2, u1 ] _N_ #-}
+or :: [Bool] -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Bool]) -> let {(u1 :: Bool) = _!_ False [] []} in _APP_ _TYAPP_ _TYAPP_ foldr { Bool } { Bool } [ _ORIG_ Prelude (||), u1, u0 ] _N_ #-}
+partition :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: u0 -> ([u0], [u0]) -> ([u0], [u0])) = \ (u3 :: u0) (u4 :: ([u0], [u0])) -> case u4 of { _ALG_ _TUP_2 (u5 :: [u0]) (u6 :: [u0]) -> case _APP_ u1 [ u3 ] of { _ALG_ True -> let {(u7 :: [u0]) = _!_ (:) [u0] [u3, u5]} in _!_ _TUP_2 [[u0], [u0]] [u7, u6]; False -> let {(u8 :: [u0]) = _!_ (:) [u0] [u3, u6]} in _!_ _TUP_2 [[u0], [u0]] [u5, u8]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(ua :: [u0]) = _!_ _NIL_ [u0] []} in let {(ub :: ([u0], [u0])) = _!_ _TUP_2 [[u0], [u0]] [ua, ua]} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { ([u0], [u0]) } [ u9, ub, u2 ] _N_ #-}
+product :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u6; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [1#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [1.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (*) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (*) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [1#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (*) (Integer), u1, u0 ] _N_ } #-}
+products :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+repeat :: a -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0) -> let {(u6 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> _LETREC_ {(u5 :: u2) = _APP_ u3 [ u1, u5 ]} in u5} in _APP_ _TYAPP_ _build { u0 } [ u6 ] _N_ #-}
+reverse :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: [u0]) -> let {(u8 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u2 -> \ (u3 :: u0 -> u2 -> u2) (u4 :: u2) -> let {(u7 :: u2 -> u0 -> u2) = \ (u5 :: u2) (u6 :: u0) -> _APP_ u3 [ u6, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldl { u2 } { u0 } [ u7, u4, u1 ]} in _APP_ _TYAPP_ _build { u0 } [ u8 ] _N_ #-}
+scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _N_ _N_ _N_ #-}
+scanl1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+scanr1 :: (a -> a -> a) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+span :: (a -> Bool) -> [a] -> ([a], [a])
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+splitAt :: Integral a => a -> [b] -> ([b], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(LU(U(AAASAAAA)AAA)AAAAAAAAAS)" {_A_ 3 _U_ 11122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+sum :: Num a => [a] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: {{Num u0}}) -> let {(uc :: u0 -> u0 -> u0) = case u1 of { _ALG_ _TUP_10 (u2 :: {{Eq u0}}) (u3 :: {{Text u0}}) (u4 :: u0 -> u0 -> u0) (u5 :: u0 -> u0 -> u0) (u6 :: u0 -> u0 -> u0) (u7 :: u0 -> u0) (u8 :: u0 -> u0) (u9 :: u0 -> u0) (ua :: Integer -> u0) (ub :: Int -> u0) -> u4; _NO_DEFLT_ }} in let {(uo :: u0) = let {(ud :: Int) = _!_ I# [] [0#]} in case u1 of { _ALG_ _TUP_10 (ue :: {{Eq u0}}) (uf :: {{Text u0}}) (ug :: u0 -> u0 -> u0) (uh :: u0 -> u0 -> u0) (ui :: u0 -> u0 -> u0) (uj :: u0 -> u0) (uk :: u0 -> u0) (ul :: u0 -> u0) (um :: Integer -> u0) (un :: Int -> u0) -> _APP_ un [ ud ]; _NO_DEFLT_ }} in \ (up :: [u0]) -> _APP_ _TYAPP_ _TYAPP_ foldl { u0 } { u0 } [ uc, uo, up ] _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Double]) -> let {(u1 :: Double) = _!_ D# [] [0.0000000000000000##]} in _APP_ _TYAPP_ _TYAPP_ foldl { Double } { Double } [ _CONSTM_ Num (+) (Double), u1, u0 ] _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Int]) -> let {(u1 :: Int) = _!_ I# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Int } { Int } [ _CONSTM_ Num (+) (Int), u1, u0 ] _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [Integer]) -> let {(u1 :: Integer) = _#_ int2Integer# [] [0#]} in _APP_ _TYAPP_ _TYAPP_ foldl { Integer } { Integer } [ _CONSTM_ Num (+) (Integer), u1, u0 ] _N_ }, [ (Complex Double) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ let {(u6 :: Complex Double -> Complex Double -> Complex Double) = \ (u0 :: Complex Double) (u1 :: Complex Double) -> case u0 of { _ALG_ (:+) (u2 :: Double) (u3 :: Double) -> case u1 of { _ALG_ (:+) (u4 :: Double) (u5 :: Double) -> _APP_ _WRKR_ _CONSTM_ Num (+) (Complex Double) [ u2, u3, u4, u5 ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in let {(u8 :: Complex Double) = let {(u7 :: Int) = _!_ I# [] [0#]} in _APP_ _CONSTM_ Num fromInt (Complex Double) [ u7 ]} in \ (u9 :: [Complex Double]) -> _APP_ _TYAPP_ _TYAPP_ foldl { (Complex Double) } { (Complex Double) } [ u6, u8, u9 ] _N_ } #-}
+sums :: Num a => [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 21 _N_ _N_ _N_ _N_ #-}
+tail :: [a] -> [a]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 1 1 C 5 _/\_ u0 -> \ (u1 :: [u0]) -> case u1 of { _ALG_ (:) (u2 :: u0) (u3 :: [u0]) -> u3; _NIL_ -> _APP_ _TYAPP_ error { [u0] } [ _NOREP_S_ "tail{PreludeList}: tail []\n" ]; _NO_DEFLT_ } _N_ #-}
+take :: Integral a => a -> [b] -> [b]
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(AAAAAAAAAAAS)LL" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _F_ _IF_ARGS_ 2 3 CXX 7 _/\_ u0 u1 -> \ (u2 :: {{Integral u0}}) (u3 :: u0) (u4 :: [u1]) -> let {(uh :: Int) = case u2 of { _ALG_ _TUP_12 (u5 :: {{Real u0}}) (u6 :: {{Ix u0}}) (u7 :: u0 -> u0 -> u0) (u8 :: u0 -> u0 -> u0) (u9 :: u0 -> u0 -> u0) (ua :: u0 -> u0 -> u0) (ub :: u0 -> u0 -> (u0, u0)) (uc :: u0 -> u0 -> (u0, u0)) (ud :: u0 -> Bool) (ue :: u0 -> Bool) (uf :: u0 -> Integer) (ug :: u0 -> Int) -> _APP_ ug [ u3 ]; _NO_DEFLT_ }} in _APP_ _TYAPP_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u1 } [ uh, u4 ] _SPECIALISE_ [ Int, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)L" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer, _N_ ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2221 _N_ _N_ _F_ _IF_ARGS_ 1 4 XXXX 4 _/\_ u0 -> \ (u1 :: Int#) (u2 :: Int#) (u3 :: ByteArray#) (u4 :: [u0]) -> case _#_ integer2Int# [] [u1, u2, u3] of { _PRIM_ (u5 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u5, u4 ] } _N_} _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: Integer) (u2 :: [u0]) -> case u1 of { _ALG_ J# (u3 :: Int#) (u4 :: Int#) (u5 :: ByteArray#) -> case _#_ integer2Int# [] [u3, u4, u5] of { _PRIM_ (u6 :: Int#) -> _APP_ _TYAPP_ _WRKR_ _SPEC_ _ORIG_ PreludeList take [ (Int), _N_ ] { u0 } [ u6, u2 ] }; _NO_DEFLT_ } _N_ } #-}
+takeWhile :: (a -> Bool) -> [a] -> [a]
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _F_ _ALWAYS_ _/\_ u0 -> \ (u1 :: u0 -> Bool) (u2 :: [u0]) -> let {(u9 :: _forall_ a$z1 =>(u0 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u3 -> \ (u4 :: u0 -> u3 -> u3) (u5 :: u3) -> let {(u8 :: u0 -> u3 -> u3) = \ (u6 :: u0) (u7 :: u3) -> case _APP_ u1 [ u6 ] of { _ALG_ True -> _APP_ u4 [ u6, u7 ]; False -> u5; _NO_DEFLT_ }} in _APP_ _TYAPP_ _TYAPP_ foldr { u0 } { u3 } [ u8, u5, u2 ]} in _APP_ _TYAPP_ _build { u0 } [ u9 ] _N_ #-}
+transpose :: [[a]] -> [[a]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unlines :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _ALWAYS_ \ (u0 :: [[Char]]) -> let {(u1 :: [Char]) = _!_ _NIL_ [Char] []} in let {(u6 :: [Char] -> [Char] -> [Char]) = \ (u2 :: [Char]) (u3 :: [Char]) -> let {(u4 :: Char) = _!_ C# [] ['\o12'#]} in let {(u5 :: [Char]) = _!_ (:) [Char] [u4, u3]} in _APP_ _TYAPP_ _ORIG_ PreludeList (++) { Char } [ u2, u5 ]} in _APP_ _TYAPP_ _TYAPP_ foldr { [Char] } { [Char] } [ u6, u1, u0 ] _N_ #-}
+unwords :: [[Char]] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip :: [(a, b)] -> ([a], [b])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+words :: [Char] -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+zip :: [a] -> [b] -> [(a, b)]
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _F_ _ALWAYS_ _/\_ u0 u1 -> \ (u2 :: [u0]) (u3 :: [u1]) -> let {(u6 :: u0 -> u1 -> (u0, u1)) = \ (u4 :: u0) (u5 :: u1) -> _!_ _TUP_2 [u0, u1] [u4, u5]} in _APP_ _TYAPP_ _TYAPP_ _TYAPP_ _ORIG_ PreludeList zipWith { u0 } { u1 } { (u0, u1) } [ u6, u2, u3 ] _N_ #-}
+zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "SLL" _N_ _N_ #-}
+zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "SLLL" _N_ _N_ #-}
+zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ {-# GHC_PRAGMA _A_ 5 _U_ 11111 _N_ _S_ "SLLLL" _N_ _N_ #-}
+zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ {-# GHC_PRAGMA _A_ 6 _U_ 111111 _N_ _S_ "SLLLLL" _N_ _N_ #-}
+zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ {-# GHC_PRAGMA _A_ 7 _U_ 1111111 _N_ _S_ "SLLLLLL" _N_ _N_ #-}
+zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSL" _F_ _ALWAYS_ _/\_ u0 u1 u2 -> \ (u3 :: u0 -> u1 -> u2) (u4 :: [u0]) (u5 :: [u1]) -> let {(ui :: _forall_ a$z1 =>(u2 -> a$z1 -> a$z1) -> a$z1 -> a$z1) = _/\_ u6 -> \ (u7 :: u2 -> u6 -> u6) (u8 :: u6) -> _LETREC_ {(u9 :: [u0] -> [u1] -> u6) = \ (ua :: [u0]) (ub :: [u1]) -> case ua of { _ALG_ _NIL_ -> u8; (:) (uc :: u0) (ud :: [u0]) -> case ub of { _ALG_ _NIL_ -> u8; (:) (ue :: u1) (uf :: [u1]) -> let {(ug :: u6) = _APP_ u9 [ ud, uf ]} in let {(uh :: u2) = _APP_ u3 [ uc, ue ]} in _APP_ u7 [ uh, ug ]; _NO_DEFLT_ }; _NO_DEFLT_ }} in _APP_ u9 [ u4, u5 ]} in _APP_ _TYAPP_ _build { u2 } [ ui ] _N_ #-}
+zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LSLL" _N_ _N_ #-}
+zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ {-# GHC_PRAGMA _A_ 5 _U_ 21111 _N_ _S_ "LSLLL" _N_ _N_ #-}
+zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ {-# GHC_PRAGMA _A_ 6 _U_ 211111 _N_ _S_ "LSLLLL" _N_ _N_ #-}
+zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ {-# GHC_PRAGMA _A_ 7 _U_ 2111111 _N_ _S_ "LSLLLLL" _N_ _N_ #-}
+zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ {-# GHC_PRAGMA _A_ 8 _U_ 21111111 _N_ _S_ "LSLLLLLL" _N_ _N_ #-}
+_appendPS :: _PackedString -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+_breakPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_byteArrayToPS :: _ByteArray Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(U(P)U(P))P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_concatPS :: [_PackedString] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_consPS :: Char -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _N_ _N_ _N_ #-}
+_dropPS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_dropWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_filterPS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_foldlPS :: (a -> Char -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_foldrPS :: (Char -> a -> a) -> a -> _PackedString -> a
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLS" _N_ _N_ #-}
+_headPS :: _PackedString -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_indexPS :: _PackedString -> Int -> Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_lengthPS :: _PackedString -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> _!_ I# [] [u2]; _CPS (u4 :: Addr#) (u5 :: Int#) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+_linesPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_mapPS :: (Char -> Char) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
+_nilPS :: _PackedString
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _CPS [] [""#, 0#] _N_ #-}
+_nullPS :: _PackedString -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 0 1 C 6 \ (u0 :: _PackedString) -> case u0 of { _ALG_ _PS (u1 :: ByteArray#) (u2 :: Int#) (u3 :: Bool) -> case u2 of { _PRIM_ 0# -> _!_ True [] []; (u4 :: Int#) -> _!_ False [] [] }; _CPS (u5 :: Addr#) (u6 :: Int#) -> case u6 of { _PRIM_ 0# -> _!_ True [] []; (u7 :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ } _N_ #-}
+_packCBytes :: Int -> _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packCString :: _Addr -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_packString :: [Char] -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_psToByteArray :: _PackedString -> _ByteArray Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_putPS :: _FILE -> _PackedString -> _State _RealWorld -> ((), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LSU(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_reversePS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_spanPS :: (Char -> Bool) -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_splitAtPS :: Int -> _PackedString -> (_PackedString, _PackedString)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+_substrPS :: _PackedString -> Int -> Int -> _PackedString
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "SU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_tailPS :: _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_takePS :: Int -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(P)S" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 5 \ (u0 :: Int#) (u1 :: _PackedString) -> case _#_ minusInt# [] [u0, 1#] of { _PRIM_ (u2 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: _PackedString) -> case u0 of { _ALG_ I# (u2 :: Int#) -> case _#_ minusInt# [] [u2, 1#] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ PreludePS _substrPS [ u1, 0#, u3 ] }; _NO_DEFLT_ } _N_ #-}
+_takeWhilePS :: (Char -> Bool) -> _PackedString -> _PackedString
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
+_unpackPS :: _PackedString -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+_wordsPS :: _PackedString -> [_PackedString]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+(%) :: Integral a => a -> a -> Ratio a
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SA)AAALALLAL)AA)ALLAAAAAAAA)" {_A_ 3 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Integer ] 1 { _A_ 2 _U_ 11 _N_ _S_ "LU(PPP)" {_A_ 4 _U_ 1222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+approxRational :: RealFrac a => a -> a -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(U(LU(U(ASAALAAA)AAAA)L)AAAAAA)LL" {_A_ 5 _U_ 21222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+denominator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u3; _NO_DEFLT_ } _N_ #-}
+numerator :: Ratio a -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 1 X 1 _/\_ u0 -> \ (u1 :: u0) -> u1 _N_} _F_ _IF_ARGS_ 1 1 C 2 _/\_ u0 -> \ (u1 :: Ratio u0) -> case u1 of { _ALG_ (:%) (u2 :: u0) (u3 :: u0) -> u2; _NO_DEFLT_ } _N_ #-}
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/SampleVar.hi b/ghc/lib/prelude/SampleVar.hi
new file mode 100644
index 0000000000..fbaed45d24
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SampleVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+type SampleVar a = _MVar (Int, _MVar a)
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/SampleVar.lhs b/ghc/lib/prelude/SampleVar.lhs
new file mode 100644
index 0000000000..ca8fea435a
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar.lhs
@@ -0,0 +1,95 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[SampleVar]{Sample variables}
+
+Sample variables are slightly different from a normal @MVar@:
+
+\begin{itemize}
+\item Reading an empty @SampleVar@ causes the reader to block.
+ (same as @takeMVar@ on empty @MVar@)
+\item Reading a filled @SampleVar@ empties it and returns value.
+ (same as @takeMVar@)
+\item Writing to an empty @SampleVar@ fills it with a value, and
+potentially, wakes up a blocked reader (same as for @putMVar@ on empty @MVar@).
+\item Writing to a filled @SampleVar@ overwrites the current value.
+ (different from @putMVar@ on full @MVar@.)
+\end{itemize}
+
+\begin{code}
+module SampleVar
+ (
+ SampleVar(..), --:: type _ =
+
+ newSampleVar, --:: IO (SampleVar a)
+ emptySampleVar, --:: SampleVar a -> IO ()
+ readSample, --:: SampleVar a -> IO a
+ writeSample --:: SampleVar a -> a -> IO ()
+
+ ) where
+
+import PreludeGlaST
+import PreludePrimIO ( newEmptyMVar, newMVar, putMVar,
+ readMVar, swapMVar, takeMVar, _MVar
+ )
+\end{code}
+
+\begin{code}
+
+type SampleVar a
+ = _MVar (Int, -- 1 == full
+ -- 0 == empty
+ -- <0 no of readers blocked
+ _MVar a)
+
+\end{code}
+
+Initally, a @SampleVar@ is empty/unfilled.
+
+\begin{code}
+
+newSampleVar :: IO (SampleVar a)
+newSampleVar
+ = newEmptyMVar >>= \ val ->
+ newMVar (0,val)
+
+emptySampleVar :: SampleVar a -> IO ()
+emptySampleVar v
+ = takeMVar v >>= \ (readers,var) ->
+ if readers >= 0 then
+ putMVar v (0,var)
+ else
+ putMVar v (readers,var)
+
+\end{code}
+
+
+
+\begin{code}
+
+--
+-- filled => make empty and grab sample
+-- not filled => try to grab value, empty when read val.
+--
+readSample :: SampleVar a -> IO a
+readSample svar
+ = takeMVar svar >>= \ (readers,val) ->
+ putMVar svar (readers-1,val) >>
+ takeMVar val
+
+--
+-- filled => overwrite
+-- not filled => fill, write val
+--
+writeSample :: SampleVar a -> a -> IO ()
+writeSample svar v
+ = takeMVar svar >>= \ (readers, val) ->
+ case readers of
+ 1 ->
+ swapMVar val v >>
+ putMVar svar (1,val)
+ _ ->
+ putMVar val v >>
+ putMVar svar (min 1 (readers+1), val)
+
+\end{code}
diff --git a/ghc/lib/prelude/SampleVar_mc.hi b/ghc/lib/prelude/SampleVar_mc.hi
new file mode 100644
index 0000000000..fbaed45d24
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar_mc.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SampleVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+type SampleVar a = _MVar (Int, _MVar a)
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/SampleVar_mg.hi b/ghc/lib/prelude/SampleVar_mg.hi
new file mode 100644
index 0000000000..fbaed45d24
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar_mg.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SampleVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+type SampleVar a = _MVar (Int, _MVar a)
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/SampleVar_mp.hi b/ghc/lib/prelude/SampleVar_mp.hi
new file mode 100644
index 0000000000..fbaed45d24
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar_mp.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SampleVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+type SampleVar a = _MVar (Int, _MVar a)
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/SampleVar_p.hi b/ghc/lib/prelude/SampleVar_p.hi
new file mode 100644
index 0000000000..fbaed45d24
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar_p.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SampleVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+type SampleVar a = _MVar (Int, _MVar a)
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/SampleVar_t.hi b/ghc/lib/prelude/SampleVar_t.hi
new file mode 100644
index 0000000000..fbaed45d24
--- /dev/null
+++ b/ghc/lib/prelude/SampleVar_t.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface SampleVar where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+type SampleVar a = _MVar (Int, _MVar a)
+emptySampleVar :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newSampleVar :: _State _RealWorld -> (Either IOError13 (_MVar (Int, _MVar a)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readSample :: _MVar (Int, _MVar a) -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeSample :: _MVar (Int, _MVar a) -> a -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(P)LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Semaphore.hi b/ghc/lib/prelude/Semaphore.hi
new file mode 100644
index 0000000000..d1a8655d06
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore.hi
@@ -0,0 +1,20 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Semaphore where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Semaphore.lhs b/ghc/lib/prelude/Semaphore.lhs
new file mode 100644
index 0000000000..df4eaed0d9
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore.lhs
@@ -0,0 +1,122 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[Semaphore]{Quantity semaphores}
+
+General/quantity semaphores
+
+\begin{code}
+module Semaphore
+
+ (
+ {- abstract -}
+ QSem,
+
+ newQSem, --:: Int -> IO QSem
+ waitQSem, --:: QSem -> IO ()
+ signalQSem, --:: QSem -> IO ()
+
+ {- abstract -}
+ QSemN,
+ newQSemN, --:: Int -> IO QSemN
+ waitQSemN, --:: QSemN -> Int -> IO ()
+ signalQSemN --:: QSemN -> Int -> IO ()
+
+ ) where
+
+import PreludeGlaST
+import PreludePrimIO ( newEmptyMVar, newMVar, putMVar,
+ readMVar, takeMVar, _MVar
+ )
+\end{code}
+
+General semaphores are also implemented readily in terms of shared @MVar@s,
+only have to catch the case when the semaphore is tried waited on
+when it is empty (==0). Implement this in the same way as shared variables are
+implemented - maintaining a list of @MVar@s representing threads currently
+waiting. The counter is a shared variable, ensuring the mutual exclusion on its access.
+
+\begin{code}
+
+data QSem = QSem (_MVar (Int, [_MVar ()]))
+
+newQSem :: Int -> IO QSem
+newQSem init
+ = newMVar (init,[]) >>= \ sem ->
+ return (QSem sem)
+
+waitQSem :: QSem -> IO ()
+waitQSem (QSem sem)
+ = takeMVar sem >>= \ (avail,blocked) -> -- gain ex. access
+ if avail > 0 then
+ putMVar sem (avail-1,[]) >>
+ return ()
+ else
+ newEmptyMVar >>= \ block ->
+ {-
+ Stuff the reader at the back of the queue,
+ so as to preserve waiting order. A signalling
+ process then only have to pick the MVar at the
+ front of the blocked list.
+
+ The version of waitQSem given in the paper could
+ lead to starvation.
+ -}
+ putMVar sem (0, blocked++[block]) >>
+ takeMVar block >>= \ v ->
+ return v
+
+signalQSem :: QSem -> IO ()
+signalQSem (QSem sem)
+ = takeMVar sem >>= \ (avail,blocked) ->
+ case blocked of
+ [] -> putMVar sem (avail+1,[]) >>
+ return ()
+ (block:blocked') ->
+ putMVar sem (0,blocked') >>
+ putMVar block () >>
+ return ()
+
+\end{code}
+
+\begin{code}
+
+data QSemN
+ = QSemN (_MVar (Int,[(Int,_MVar ())]))
+
+newQSemN :: Int -> IO QSemN
+newQSemN init
+ = newMVar (init,[]) >>= \ sem ->
+ return (QSemN sem)
+
+waitQSemN :: QSemN -> Int -> IO ()
+waitQSemN (QSemN sem) sz
+ = takeMVar sem >>= \ (avail,blocked) -> -- gain ex. access
+ if avail > 0 then
+ putMVar sem (avail-1,[]) >>
+ return ()
+ else
+ newEmptyMVar >>= \ block ->
+ putMVar sem (0, blocked++[(sz,block)]) >>
+ takeMVar block >>
+ return ()
+
+
+signalQSemN :: QSemN -> Int -> IO ()
+signalQSemN (QSemN sem) n
+ = takeMVar sem >>= \ (avail,blocked) ->
+ free (avail+n) blocked >>= \ (avail',blocked') ->
+ putMVar sem (avail',blocked') >>
+ return ()
+ where
+ free avail [] = return (avail,[])
+ free avail ((req,block):blocked) =
+ if avail > req then
+ putMVar block () >>
+ free (avail-req) blocked
+ else
+ free avail blocked >>= \ (avail',blocked') ->
+ return (avail',(req,block):blocked')
+
+
+\end{code}
diff --git a/ghc/lib/prelude/Semaphore_mc.hi b/ghc/lib/prelude/Semaphore_mc.hi
new file mode 100644
index 0000000000..d1a8655d06
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore_mc.hi
@@ -0,0 +1,20 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Semaphore where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Semaphore_mg.hi b/ghc/lib/prelude/Semaphore_mg.hi
new file mode 100644
index 0000000000..d1a8655d06
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore_mg.hi
@@ -0,0 +1,20 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Semaphore where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Semaphore_mp.hi b/ghc/lib/prelude/Semaphore_mp.hi
new file mode 100644
index 0000000000..d1a8655d06
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore_mp.hi
@@ -0,0 +1,20 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Semaphore where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Semaphore_p.hi b/ghc/lib/prelude/Semaphore_p.hi
new file mode 100644
index 0000000000..d1a8655d06
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore_p.hi
@@ -0,0 +1,20 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Semaphore where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Semaphore_t.hi b/ghc/lib/prelude/Semaphore_t.hi
new file mode 100644
index 0000000000..d1a8655d06
--- /dev/null
+++ b/ghc/lib/prelude/Semaphore_t.hi
@@ -0,0 +1,20 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface Semaphore where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+data QSem {-# GHC_PRAGMA QSem (_MVar (Int, [_MVar ()])) #-}
+data QSemN {-# GHC_PRAGMA QSemN (_MVar (Int, [(Int, _MVar ())])) #-}
+newQSem :: Int -> _State _RealWorld -> (Either IOError13 QSem, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+newQSemN :: Int -> _State _RealWorld -> (Either IOError13 QSemN, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSem :: QSem -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(U(P))U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitQSemN :: QSemN -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 121 _N_ _S_ "U(U(P))LU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/prelude/Text.hi b/ghc/lib/prelude/Text.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text.hs b/ghc/lib/prelude/Text.hs
new file mode 100644
index 0000000000..239c6556da
--- /dev/null
+++ b/ghc/lib/prelude/Text.hs
@@ -0,0 +1,461 @@
+module PreludeText (
+ ReadS(..), ShowS(..),
+
+ lex,
+ showString,
+ readParen,
+ showParen,
+ read,
+ readDec,
+ readFloat,
+ readLitChar,
+ readSigned,
+ _readRational,
+ reads,
+ show,
+ showChar,
+ showFloat,
+ showInt,
+ showLitChar,
+ showSigned,
+ shows,
+
+ _showHex, _showRadix, _showDigit, -- non-std
+
+ showSpace__, -- non-std
+-- lexToss__, -- non-std
+ readOct, readHex
+ ) where
+
+import Cls
+import Core
+import IChar -- instances
+import IDouble
+import IFloat
+import IInt
+import IInteger
+import IList
+import IRatio
+import ITup2
+import List
+import Prel
+import PS ( _PackedString, _unpackPS )
+import TyComplex -- for pragmas
+
+-- import Prelude hiding ( readParen )
+
+type ReadS a = String -> [(a,String)]
+type ShowS = String -> String
+
+-- *** instances omitted ***
+
+
+{-# SPECIALIZE reads :: ReadS Int,
+ ReadS Integer,
+ ReadS Float,
+ ReadS Double #-}
+{-# SPECIALIZE shows :: Int -> String -> String = shows_Int,
+ Integer -> String -> String = shows_Integer,
+ Float -> String -> String,
+ Double -> String -> String #-}
+{-# SPECIALIZE show :: Char -> String,
+ Int -> String = itos,
+ Integer -> String = jtos,
+ Float -> String,
+ Double -> String,
+ _PackedString -> String,
+ String -> String,
+ (Int,Int) -> String,
+ (Integer,Integer) -> String #-}
+{-# SPECIALIZE read :: String -> Int,
+ String -> Integer,
+ String -> Float,
+ String -> Double #-}
+
+--{-# GENERATE_SPECS reads a #-}
+reads :: (Text a) => ReadS a
+reads = readsPrec 0
+
+--{-# GENERATE_SPECS read a #-}
+read :: (Text a) => String -> a
+read s = case [x | (x,t) <- reads s, ("","") <- lex t] of
+ [x] -> x
+ [] -> error ("read{PreludeText}: no parse:"++s++"\n")
+ _ -> error ("read{PreludeText}: ambiguous parse:"++s++"\n")
+
+--{-# GENERATE_SPECS shows a{+,Int} #-}
+shows :: (Text a) => a -> ShowS
+shows = showsPrec 0
+
+shows_Int :: Int -> ShowS
+shows_Int n r = itos n ++ r -- showsPrec 0 n r
+
+shows_Integer :: Integer -> ShowS
+shows_Integer n r = jtos n ++ r -- showsPrec 0 n r
+
+--{-# GENERATE_SPECS show a{+,Int} #-}
+show :: (Text a) => a -> String
+show x = shows x ""
+
+showChar :: Char -> ShowS
+showChar = (:)
+
+showSpace__ :: ShowS -- partain: this one is non-std
+showSpace__ = {-showChar ' '-} \ xs -> ' ' : xs
+
+showString :: String -> ShowS
+showString = (++)
+
+showParen :: Bool -> ShowS -> ShowS
+showParen b p = if b then showChar '(' . p . showChar ')' else p
+
+readParen :: Bool -> ReadS a -> ReadS a
+readParen b g = if b then mandatory else optional
+ where optional r = g r ++ mandatory r
+ mandatory r = [(x,u) | ("(",s) <- lex r,
+ (x,t) <- optional s,
+ (")",u) <- lex t ]
+
+--------------------------------------------
+lex :: ReadS String
+lex "" = [("","")]
+lex (c:s) | isSpace c = lex (dropWhile isSpace s)
+lex ('-':'-':s) = case dropWhile (/= '\n') s of
+ '\n':t -> lex t
+ _ -> [] -- unterminated end-of-line
+ -- comment
+
+lex ('{':'-':s) = lexNest lex s
+ where
+ lexNest f ('-':'}':s) = f s
+ lexNest f ('{':'-':s) = lexNest (lexNest f) s
+ lexNest f (c:s) = lexNest f s
+ lexNest _ "" = [] -- unterminated
+ -- nested comment
+
+lex ('<':'-':s) = [("<-",s)]
+lex ('\'':s) = [('\'':ch++"'", t) | (ch,'\'':t) <- lexLitChar s,
+ ch /= "'" ]
+lex ('"':s) = [('"':str, t) | (str,t) <- lexString s]
+ where
+ lexString ('"':s) = [("\"",s)]
+ lexString s = [(ch++str, u)
+ | (ch,t) <- lexStrItem s,
+ (str,u) <- lexString t ]
+
+ lexStrItem ('\\':'&':s) = [("\\&",s)]
+ lexStrItem ('\\':c:s) | isSpace c
+ = [("\\&",t) | '\\':t <- [dropWhile isSpace s]]
+ lexStrItem s = lexLitChar s
+
+lex (c:s) | isSingle c = [([c],s)]
+ | isSym1 c = [(c:sym,t) | (sym,t) <- [span isSym s]]
+ | isAlpha c = [(c:nam,t) | (nam,t) <- [span isIdChar s]]
+ | isDigit c = [(c:ds++fe,t) | (ds,s) <- [span isDigit s],
+ (fe,t) <- lexFracExp s ]
+ | otherwise = [] -- bad character
+ where
+ isSingle c = c `elem` ",;()[]{}_`"
+ isSym1 c = c `elem` "-~" || isSym c
+ isSym c = c `elem` "!@#$%&*+./<=>?\\^|:"
+ isIdChar c = isAlphanum c || c `elem` "_'"
+
+ lexFracExp ('.':d:s) | isDigit d
+ = [('.':d:ds++e,u) | (ds,t) <- [span isDigit s],
+ (e,u) <- lexExp t ]
+ lexFracExp s = [("",s)]
+
+ lexExp (e:s) | e `elem` "eE"
+ = [(e:c:ds,u) | (c:t) <- [s], c `elem` "+-",
+ (ds,u) <- lexDigits t] ++
+ [(e:ds,t) | (ds,t) <- lexDigits s]
+ lexExp s = [("",s)]
+
+lexDigits :: ReadS String
+lexDigits = nonnull isDigit
+
+nonnull :: (Char -> Bool) -> ReadS String
+nonnull p s = [(cs,t) | (cs@(_:_),t) <- [span p s]]
+
+lexLitChar :: ReadS String
+
+lexLitChar ('\\':s) = [('\\':esc, t) | (esc,t) <- lexEsc s]
+ where
+ lexEsc (c:s) | c `elem` "abfnrtv\\\"'" = [([c],s)]
+ lexEsc ('^':c:s) | c >= '@' && c <= '_' = [(['^',c],s)]
+ lexEsc s@(d:_) | isDigit d = lexDigits s
+ lexEsc ('o':s) = [('o':os, t) | (os,t) <- nonnull isOctDigit s]
+ lexEsc ('x':s) = [('x':xs, t) | (xs,t) <- nonnull isHexDigit s]
+ lexEsc s@(c:_) | isUpper c
+ = case [(mne,s') | mne <- "DEL" : asciiTab,
+ ([],s') <- [match mne s] ]
+ of (pr:_) -> [pr]
+ [] -> []
+ lexEsc _ = []
+lexLitChar (c:s) = [([c],s)]
+lexLitChar "" = []
+
+isOctDigit c = c >= '0' && c <= '7'
+isHexDigit c = isDigit c || c >= 'A' && c <= 'F'
+ || c >= 'a' && c <= 'f'
+
+match :: (Eq a) => [a] -> [a] -> ([a],[a])
+match (x:xs) (y:ys) | x == y = match xs ys
+match xs ys = (xs,ys)
+
+asciiTab = -- Using an array drags in the array module. listArray ('\NUL', ' ')
+ ["NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
+ "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI",
+ "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
+ "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US",
+ "SP"]
+
+readLitChar :: ReadS Char
+
+readLitChar ('\\':s) = readEsc s
+ where
+ readEsc ('a':s) = [('\a',s)]
+ readEsc ('b':s) = [('\b',s)]
+ readEsc ('f':s) = [('\f',s)]
+ readEsc ('n':s) = [('\n',s)]
+ readEsc ('r':s) = [('\r',s)]
+ readEsc ('t':s) = [('\t',s)]
+ readEsc ('v':s) = [('\v',s)]
+ readEsc ('\\':s) = [('\\',s)]
+ readEsc ('"':s) = [('"',s)]
+ readEsc ('\'':s) = [('\'',s)]
+ readEsc ('^':c:s) | c >= '@' && c <= '_'
+ = [(chr (ord c - ord '@'), s)]
+ readEsc s@(d:_) | isDigit d
+ = [(chr n, t) | (n,t) <- readDec s]
+ readEsc ('o':s) = [(chr n, t) | (n,t) <- readOct s]
+ readEsc ('x':s) = [(chr n, t) | (n,t) <- readHex s]
+ readEsc s@(c:_) | isUpper c
+ = let table = ('\DEL', "DEL") : zip ['\NUL'..] asciiTab
+ in case [(c,s') | (c, mne) <- table,
+ ([],s') <- [match mne s]]
+ of (pr:_) -> [pr]
+ [] -> []
+ readEsc _ = []
+readLitChar (c:s) = [(c,s)]
+
+showLitChar :: Char -> ShowS
+showLitChar c | c > '\DEL' = showChar '\\' . protectEsc isDigit (shows (ord c))
+showLitChar '\DEL' = showString "\\DEL"
+showLitChar '\\' = showString "\\\\"
+showLitChar c | c >= ' ' = showChar c
+showLitChar '\a' = showString "\\a"
+showLitChar '\b' = showString "\\b"
+showLitChar '\f' = showString "\\f"
+showLitChar '\n' = showString "\\n"
+showLitChar '\r' = showString "\\r"
+showLitChar '\t' = showString "\\t"
+showLitChar '\v' = showString "\\v"
+showLitChar '\SO' = protectEsc (== 'H') (showString "\\SO")
+showLitChar c = showString ('\\' : asciiTab!!ord c)
+
+protectEsc p f = f . cont
+ where cont s@(c:_) | p c = "\\&" ++ s
+ cont s = s
+
+{-# SPECIALIZE readDec :: ReadS Int, ReadS Integer #-}
+-- specialisations of readInt should happen automagically
+{-# SPECIALIZE showInt :: Int -> ShowS, Integer -> ShowS #-}
+
+readDec, readOct, readHex :: (Integral a) => ReadS a
+readDec = readInt 10 isDigit (\d -> ord d - i_ord_0)
+readOct = readInt 8 isOctDigit (\d -> ord d - i_ord_0)
+readHex = readInt 16 isHexDigit hex
+ where hex d = ord d - (if isDigit d then i_ord_0
+ else ord (if isUpper d then 'A' else 'a')
+ - 10)
+
+readInt :: (Integral a) => a -> (Char -> Bool) -> (Char -> Int) -> ReadS a
+readInt radix isDig digToInt s =
+ [(foldl1 (\n d -> n * radix + d) (map (fromIntegral . digToInt) ds), r)
+ | (ds,r) <- nonnull isDig s ]
+
+showInt :: (Integral a) => a -> ShowS
+{- USE_REPORT_PRELUDE
+showInt n r = let (n',d) = quotRem n 10
+ r' = chr (i_ord_0 + fromIntegral d) : r
+ in if n' == 0 then r' else showInt n' r'
+-}
+
+showInt n r
+ = case quotRem n 10 of { (n', d) ->
+ case (chr (i_ord_0 + fromIntegral d)) of { C# c# -> -- stricter than necessary
+ let
+ r' = C# c# : r
+ in
+ if n' == 0 then r' else showInt n' r'
+ }}
+
+-- #endif /* ! USE_REPORT_PRELUDE */
+
+{-# SPECIALIZE readSigned :: ReadS Int -> ReadS Int,
+ ReadS Integer -> ReadS Integer,
+ ReadS Double -> ReadS Double #-}
+{-# SPECIALIZE showSigned :: (Int -> ShowS) -> Int -> Int -> ShowS = showSigned_Int,
+ (Integer -> ShowS) -> Int -> Integer -> ShowS = showSigned_Integer,
+ (Double -> ShowS) -> Int -> Double -> ShowS #-}
+{-# SPECIALIZE readFloat :: ReadS Float,
+ ReadS Double #-}
+{-# SPECIALIZE showFloat :: Float -> ShowS, Double -> ShowS #-}
+
+readSigned:: (Real a) => ReadS a -> ReadS a
+readSigned readPos = readParen False read'
+ where read' r = read'' r ++
+ [(-x,t) | ("-",s) <- lex r,
+ (x,t) <- read'' s]
+ read'' r = [(n,s) | (str,s) <- lex r,
+ (n,"") <- readPos str]
+
+-- ******************************************************************
+
+showSigned:: (Real a) => (a -> ShowS) -> Int -> a -> ShowS
+showSigned showPos p x = if x < 0 then showParen (p > 6)
+ (showChar '-' . showPos (-x))
+ else showPos x
+
+showSigned_Int :: (Int -> ShowS) -> Int -> Int -> ShowS
+showSigned_Int _ p n r
+ = -- from HBC version; support code follows
+ if n < 0 && p > 6 then '(':itos n++(')':r) else itos n ++ r
+
+showSigned_Integer :: (Integer -> ShowS) -> Int -> Integer -> ShowS
+showSigned_Integer _ p n r
+ = -- from HBC version; support code follows
+ if n < 0 && p > 6 then '(':jtos n++(')':r) else jtos n ++ r
+
+itos :: Int -> String
+itos n =
+ if n < 0 then
+ if -n < 0 then
+ -- n is minInt, a difficult number
+ itos (n `quot` 10) ++ itos' (-(n `rem` 10)) []
+ else
+ '-':itos' (-n) []
+ else
+ itos' n []
+ where
+ itos' :: Int -> String -> String
+ itos' n cs =
+ if n < 10 then
+ chr (n + i_ord_0) : cs
+ else
+ itos' (n `quot` 10) (chr (n `rem` 10+i_ord_0) : cs)
+
+i_ord_0 :: Int
+j_ord_0 :: Integer
+i_ord_0 = ord '0'
+j_ord_0 = toInteger (ord '0')
+
+jtos :: Integer -> String
+jtos n =
+ if n < 0 then
+ if -n < 0 then
+ -- n is minInt, a difficult number
+ jtos (n `quot` 10) ++ jtos' (-(n `rem` 10)) []
+ else
+ '-':jtos' (-n) []
+ else
+ jtos' n []
+ where
+ jtos' :: Integer -> String -> String
+ jtos' n cs =
+ if n < 10 then
+ chr (fromInteger (n + j_ord_0)) : cs
+ else
+ jtos' (n `quot` 10) (chr (fromInteger (n `rem` 10+j_ord_0)) : cs)
+
+-- ******************************************************************
+
+-- The functions readFloat and showFloat below use rational arithmetic
+-- to insure correct conversion between the floating-point radix and
+-- decimal. It is often possible to use a higher-precision floating-
+-- point type to obtain the same results.
+
+readFloat :: (RealFloat a) => ReadS a
+readFloat r = [(fromRational x, t) | (x, t) <- readRational r]
+
+readRational :: ReadS Rational -- NB: doesn't handle leading "-"
+
+readRational r
+ = [ ( (n%1)*10^^(k-d), t ) | (n,d,s) <- readFix r,
+ (k,t) <- readExp s]
+ where readFix r = [(read (ds++ds'), length ds', t)
+ | (ds,'.':s) <- lexDigits r,
+ (ds',t) <- lexDigits s ]
+
+ readExp (e:s) | e `elem` "eE" = readExp' s
+ readExp s = [(0,s)]
+
+ readExp' ('-':s) = [(-k,t) | (k,t) <- readDec s]
+ readExp' ('+':s) = readDec s
+ readExp' s = readDec s
+
+_readRational :: String -> Rational -- we export this one (non-std)
+ -- NB: *does* handle a leading "-"
+_readRational top_s
+ = case top_s of
+ '-' : xs -> - (read_me xs)
+ xs -> read_me xs
+ where
+ read_me s
+ = case [x | (x,t) <- readRational s, ("","") <- lex t] of
+ [x] -> x
+ [] -> error ("_readRational: no parse:" ++ top_s)
+ _ -> error ("_readRational: ambiguous parse:" ++ top_s)
+
+-- The number of decimal digits m below is chosen to guarantee
+-- read (show x) == x. See
+-- Matula, D. W. A formalization of floating-point numeric base
+-- conversion. IEEE Transactions on Computers C-19, 8 (1970 August),
+-- 681-692.
+
+zeros = repeat '0'
+
+showFloat:: (RealFloat a) => a -> ShowS
+showFloat x =
+ if x == 0 then showString ("0." ++ take (m-1) zeros)
+ else if e >= m-1 || e < 0 then showSci else showFix
+ where
+ showFix = showString whole . showChar '.' . showString frac
+ where (whole,frac) = splitAt (e+1) (show sig)
+ showSci = showChar d . showChar '.' . showString frac
+ . showChar 'e' . shows e
+ where (d:frac) = show sig
+ (m, sig, e) = if b == 10 then (w, s, n+w-1)
+ else (m', sig', e' )
+ m' = _ceiling
+ ((fromIntegral w * log (fromInteger b)) / log 10 :: Double)
+ + 1
+ (sig', e') = if sig1 >= 10^m' then (_round (t/10), e1+1)
+ else if sig1 < 10^(m'-1) then (_round (t*10), e1-1)
+ else (sig1, e1 )
+ sig1 = _round t
+ t = s%1 * (b%1)^^n * 10^^(m'-e1-1)
+ e1 = _floor (logBase 10 x)
+ (s, n) = decodeFloat x
+ b = floatRadix x
+ w = floatDigits x
+
+
+-- With all the guff the Prelude defines, you'd have thought they'd
+-- include a few of the basics! ADR
+-- (I guess this could be put in a utilities module instead...)
+
+_showHex :: Int -> ShowS
+_showHex = _showRadix 16
+
+_showRadix :: Int -> Int -> ShowS
+_showRadix radix n r =
+ let (n',d) = quotRem n radix
+ r' = _showDigit d : r
+ in
+ if n' == 0 then r' else _showRadix radix n' r'
+
+_showDigit :: Int -> Char
+_showDigit d | d < 10 = chr (i_ord_0 + d)
+ | otherwise = chr (ord 'a' + (d - 10))
diff --git a/ghc/lib/prelude/Text_mc.hi b/ghc/lib/prelude/Text_mc.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text_mc.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text_mg.hi b/ghc/lib/prelude/Text_mg.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text_mg.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text_mp.hi b/ghc/lib/prelude/Text_mp.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text_mp.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text_mr.hi b/ghc/lib/prelude/Text_mr.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text_mr.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text_mt.hi b/ghc/lib/prelude/Text_mt.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text_mt.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text_p.hi b/ghc/lib/prelude/Text_p.hi
new file mode 100644
index 0000000000..e615b958f0
--- /dev/null
+++ b/ghc/lib/prelude/Text_p.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 0 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 222 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/Text_t.hi b/ghc/lib/prelude/Text_t.hi
new file mode 100644
index 0000000000..a789463a27
--- /dev/null
+++ b/ghc/lib/prelude/Text_t.hi
@@ -0,0 +1,56 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeText where
+import PreludeBuiltin(Char(..), Int(..), Integer(..), List(..), Tuple2)
+import PreludeCore(Bool(..), Integral(..), Real(..), RealFloat(..), Text(..))
+import PreludeRatio(Ratio(..))
+type ReadS a = [Char] -> [(a, [Char])]
+type ShowS = [Char] -> [Char]
+_readRational :: [Char] -> Ratio Integer
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+_showDigit :: Int -> Char
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+_showHex :: Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ #-}
+_showRadix :: Int -> Int -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(P)U(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+lex :: [Char] -> [([Char], [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
+read :: Text a => [Char] -> a
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readDec :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readFloat :: RealFloat a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ } #-}
+readHex :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readLitChar :: [Char] -> [(Char, [Char])]
+ {-# GHC_PRAGMA _A_ 0 _U_ 1 _N_ _N_ _N_ _N_ #-}
+readOct :: Integral a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _SPECIALISE_ [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+readParen :: Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _S_ "EL" _N_ _N_ #-}
+readSigned :: Real a => ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 2 _U_ 122 _N_ _N_ _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+reads :: Text a => [Char] -> [(a, [Char])]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(SAAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ } #-}
+show :: Text a => a -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 12 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(PPP)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ }, [ _PackedString ] 1 { _A_ 1 _U_ 1 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 1 _U_ 1 _N_ _S_ "U(LL)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Char) (u1 :: [Char]) -> _!_ (:) [Char] [u0, u1] _N_ #-}
+showFloat :: RealFloat a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(LU(SLLL)LAAAA)LLLALAAAA)" {_A_ 5 _U_ 1122222 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ } #-}
+showInt :: Integral a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(U(U(U(SL)LLLLLLLLL)LL)LLLLLSLLLLL)" _N_ _SPECIALISE_ [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showLitChar :: Char -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ #-}
+showParen :: Bool -> ([Char] -> [Char]) -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 0 _U_ 122 _N_ _N_ _N_ _N_ #-}
+showSigned :: Real a => (a -> [Char] -> [Char]) -> Int -> a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 12222 _N_ _S_ "U(LU(U(ASAAAAAA)AAAA)A)" {_A_ 2 _U_ 212122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Double ] 1 { _A_ 3 _U_ 2112 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Int ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(P)L" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 4 _U_ 0112 _N_ _S_ "ALU(PPP)L" {_A_ 5 _U_ 12222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+showSpace__ :: [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+showString :: [Char] -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _TYAPP_ _ORIG_ PreludeList (++) { Char } _N_ #-}
+shows :: Text a => a -> [Char] -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 122 _N_ _S_ "U(ASAA)" {_A_ 1 _U_ 122 _N_ _N_ _N_ _N_} _N_ _SPECIALISE_ [ Char ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Double ] 1 { _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Float ] 1 { _A_ 0 _U_ 22 _N_ _N_ _N_ _N_ }, [ Int ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(P)L" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ }, [ Integer ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(PPP)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ [Char] ] 1 { _A_ 1 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Text showList (Char) _N_ }, [ _PackedString ] 1 { _A_ 2 _U_ 12 _N_ _N_ _N_ _N_ }, [ (Int, Int) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ }, [ (Integer, Integer) ] 1 { _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ } #-}
+
diff --git a/ghc/lib/prelude/TyArray.hi b/ghc/lib/prelude/TyArray.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray.hs b/ghc/lib/prelude/TyArray.hs
new file mode 100644
index 0000000000..660f90e7e6
--- /dev/null
+++ b/ghc/lib/prelude/TyArray.hs
@@ -0,0 +1,27 @@
+module PreludeArray (
+ Assoc(..), Array(..), _ByteArray(..)
+ ) where
+
+import Cls
+import Core
+
+data Assoc a b = a := b deriving ()
+
+-- Report: we do not do this:
+-- data {-(Ix a) =>-} Array a b = MkArray (a,a) (a -> b) deriving ()
+-- context omitted to match builtin version
+
+-- Our version of a Haskell array:
+data Array ix elt = _Array (ix, ix) (Array# elt)
+
+-- And the companion "byte array" type:
+data _ByteArray ix = _ByteArray (ix,ix) ByteArray#
+
+instance _CCallable (_ByteArray ix)
+
+{- ToDo: Unboxed arrays:
+
+{- SPECIALIZE data a{Int#} b :: Assoc a b #-}
+{- SPECIALIZE data a{Int#} b :: Array a b #-}
+
+-}
diff --git a/ghc/lib/prelude/TyArray_mc.hi b/ghc/lib/prelude/TyArray_mc.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_mc.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray_mg.hi b/ghc/lib/prelude/TyArray_mg.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_mg.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray_mp.hi b/ghc/lib/prelude/TyArray_mp.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_mp.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray_mr.hi b/ghc/lib/prelude/TyArray_mr.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_mr.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray_mt.hi b/ghc/lib/prelude/TyArray_mt.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_mt.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray_p.hi b/ghc/lib/prelude/TyArray_p.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_p.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyArray_t.hi b/ghc/lib/prelude/TyArray_t.hi
new file mode 100644
index 0000000000..6cf47cbd0d
--- /dev/null
+++ b/ghc/lib/prelude/TyArray_t.hi
@@ -0,0 +1,10 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeArray where
+import PreludeBuiltin(Tuple2)
+import PreludeCore(_CCallable(..))
+data Array a b = _Array (a, a) (Array# b)
+data Assoc a b = (:=) a b
+data _ByteArray a = _ByteArray (a, a) ByteArray#
+instance _CCallable (_ByteArray a)
+ {-# GHC_PRAGMA _M_ PreludeArray {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _TUP_0 [] [] _N_ #-}
+
diff --git a/ghc/lib/prelude/TyBool.hs b/ghc/lib/prelude/TyBool.hs
new file mode 100644
index 0000000000..01fa726267
--- /dev/null
+++ b/ghc/lib/prelude/TyBool.hs
@@ -0,0 +1,5 @@
+module PreludeCore where
+
+-- *** context missing ***
+data Bool = False | True
+ deriving () -- NB
diff --git a/ghc/lib/prelude/TyComplex.hi b/ghc/lib/prelude/TyComplex.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex.hs b/ghc/lib/prelude/TyComplex.hs
new file mode 100644
index 0000000000..b1a91caafc
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex.hs
@@ -0,0 +1,10 @@
+module PreludeComplex ( Complex(..) ) where
+
+-- infix 6 :+
+
+data {- (RealFloat a) => -} Complex a = a :+ a deriving () -- (Eq,{-ToDo:Binary,-}Text)
+
+-- (NB: compiler's builtin idea of "data Complex ..." must also
+-- omit the context!)
+
+-- {-# SPECIALIZE data Complex Double# #-}
diff --git a/ghc/lib/prelude/TyComplex_mc.hi b/ghc/lib/prelude/TyComplex_mc.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_mc.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex_mg.hi b/ghc/lib/prelude/TyComplex_mg.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_mg.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex_mp.hi b/ghc/lib/prelude/TyComplex_mp.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_mp.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex_mr.hi b/ghc/lib/prelude/TyComplex_mr.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_mr.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex_mt.hi b/ghc/lib/prelude/TyComplex_mt.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_mt.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex_p.hi b/ghc/lib/prelude/TyComplex_p.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_p.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyComplex_t.hi b/ghc/lib/prelude/TyComplex_t.hi
new file mode 100644
index 0000000000..8c2710f48f
--- /dev/null
+++ b/ghc/lib/prelude/TyComplex_t.hi
@@ -0,0 +1,4 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeComplex where
+data Complex a = (:+) a a
+
diff --git a/ghc/lib/prelude/TyIO.hi b/ghc/lib/prelude/TyIO.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO.hs b/ghc/lib/prelude/TyIO.hs
new file mode 100644
index 0000000000..8738734acd
--- /dev/null
+++ b/ghc/lib/prelude/TyIO.hs
@@ -0,0 +1,63 @@
+module PreludeIO (
+ Request(..), Response(..), IOError(..),
+ Dialogue(..), SigAct(..),
+ SuccCont(..), StrCont(..), StrListCont(..),
+ BinCont(..), FailCont(..)
+ ) where
+
+import UTypes
+
+-- Requests and responses:
+
+data Request = -- file system requests:
+ ReadFile String
+ | WriteFile String String
+ | AppendFile String String
+ | ReadBinFile String
+ | WriteBinFile String Bin
+ | AppendBinFile String Bin
+ | DeleteFile String
+ | StatusFile String
+ -- channel system requests:
+ | ReadChan String
+ | AppendChan String String
+ | ReadBinChan String
+ | AppendBinChan String Bin
+ | StatusChan String
+ -- environment requests:
+ | Echo Bool
+ | GetArgs
+ | GetProgName
+ | GetEnv String
+ | SetEnv String String
+ | SigAction Int SigAct
+ deriving () -- NB: Text
+
+data SigAct = SAIgnore
+ | SADefault
+ | SACatch Dialogue
+
+data Response = Success
+ | Str String
+ | StrList [String]
+ | Bn Bin
+ | Failure IOError
+ deriving () -- NB: Text
+
+data IOError = WriteError String
+ | ReadError String
+ | SearchError String
+ | FormatError String
+ | OtherError String
+ | EOD -- 1.3
+ deriving () -- NB: Text
+
+
+-- Continuation-based I/O:
+
+type Dialogue = [Response] -> [Request]
+type SuccCont = Dialogue
+type StrCont = String -> Dialogue
+type StrListCont = [String] -> Dialogue
+type BinCont = Bin -> Dialogue
+type FailCont = IOError -> Dialogue
diff --git a/ghc/lib/prelude/TyIO_mc.hi b/ghc/lib/prelude/TyIO_mc.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_mc.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO_mg.hi b/ghc/lib/prelude/TyIO_mg.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_mg.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO_mp.hi b/ghc/lib/prelude/TyIO_mp.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_mp.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO_mr.hi b/ghc/lib/prelude/TyIO_mr.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_mr.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO_mt.hi b/ghc/lib/prelude/TyIO_mt.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_mt.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO_p.hi b/ghc/lib/prelude/TyIO_p.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_p.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyIO_t.hi b/ghc/lib/prelude/TyIO_t.hi
new file mode 100644
index 0000000000..c674bbe9d0
--- /dev/null
+++ b/ghc/lib/prelude/TyIO_t.hi
@@ -0,0 +1,15 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface PreludeIO where
+import PreludeBuiltin(Bin, Char(..), Int(..), List(..))
+import PreludeCore(Bool(..))
+type BinCont = Bin -> [Response] -> [Request]
+type Dialogue = [Response] -> [Request]
+type FailCont = IOError -> [Response] -> [Request]
+data IOError = WriteError [Char] | ReadError [Char] | SearchError [Char] | FormatError [Char] | OtherError [Char] | EOD
+data Request = ReadFile [Char] | WriteFile [Char] [Char] | AppendFile [Char] [Char] | ReadBinFile [Char] | WriteBinFile [Char] Bin | AppendBinFile [Char] Bin | DeleteFile [Char] | StatusFile [Char] | ReadChan [Char] | AppendChan [Char] [Char] | ReadBinChan [Char] | AppendBinChan [Char] Bin | StatusChan [Char] | Echo Bool | GetArgs | GetProgName | GetEnv [Char] | SetEnv [Char] [Char] | SigAction Int SigAct
+data Response = Success | Str [Char] | StrList [[Char]] | Bn Bin | Failure IOError
+data SigAct = SAIgnore | SADefault | SACatch ([Response] -> [Request])
+type StrCont = [Char] -> [Response] -> [Request]
+type StrListCont = [[Char]] -> [Response] -> [Request]
+type SuccCont = [Response] -> [Request]
+
diff --git a/ghc/lib/prelude/TyRatio.hs b/ghc/lib/prelude/TyRatio.hs
new file mode 100644
index 0000000000..bb551aada4
--- /dev/null
+++ b/ghc/lib/prelude/TyRatio.hs
@@ -0,0 +1,10 @@
+module PreludeRatio where
+
+-- *** context missing ***
+-- (NB: compiler's builtin idea of "data Ratio ..." must also
+-- omit the context!)
+data Ratio a = a :% a
+ deriving () -- NB ***
+
+-- ToDo: Ratio Int# ???
+-- {-# SPECIALIZE data a{Int#} :: Ratio a #-}
diff --git a/ghc/lib/prelude/TysBasic.hs b/ghc/lib/prelude/TysBasic.hs
new file mode 100644
index 0000000000..6ccc7c9ac8
--- /dev/null
+++ b/ghc/lib/prelude/TysBasic.hs
@@ -0,0 +1,204 @@
+module PreludeBuiltin (
+ Char(..),
+ Int(..),
+ _Word(..),
+ _Addr(..),
+ Float(..),
+ Double(..),
+ _State(..),
+ _MallocPtr(..),
+ Integer(..),
+ _Return2GMPs(..),
+ _ReturnIntAndGMP(..),
+ StateAndPtr#(..),
+ StateAndChar#(..),
+ StateAndInt#(..),
+ StateAndWord#(..),
+ StateAndFloat#(..),
+ StateAndDouble#(..),
+ StateAndAddr#(..),
+ StateAndMallocPtr#(..),
+ StateAndArray#(..),
+ StateAndMutableArray#(..),
+ StateAndByteArray#(..),
+ StateAndMutableByteArray#(..),
+ StateAndSynchVar#(..),
+#ifndef __PARALLEL_HASKELL__
+ _StablePtr(..),
+ StateAndStablePtr#(..),
+#endif
+ _CMP_TAG(..),
+ List(..),
+ Tuple0(..),
+ Tuple2(..),
+ Tuple3(..),
+ Tuple4(..),
+ Tuple5(..),
+ Tuple6(..),
+ Tuple7(..),
+ Tuple8(..),
+ Tuple9(..),
+ Tuple10(..),
+ Tuple11(..),
+ Tuple12(..),
+ Tuple13(..),
+ Tuple14(..),
+ Tuple15(..),
+ Tuple16(..),
+ Tuple17(..),
+ Tuple18(..),
+ Tuple19(..),
+ Tuple20(..),
+ Tuple21(..),
+ Tuple22(..),
+ Tuple23(..),
+ Tuple24(..),
+ Tuple25(..),
+ Tuple26(..),
+ Tuple27(..),
+ Tuple28(..),
+ Tuple29(..),
+ Tuple30(..),
+ Tuple31(..),
+ Tuple32(..),
+ Bin(..),
+ _Lift(..)
+ ) where
+
+-- *********
+-- This follows the organisation of compiler/prelude/TysWiredIn.lhs
+-- (which follows the state-interface.verb document).
+-- *********
+
+-- instances are all done carefully, by hand (in the prelude/I*.hs files)
+
+----------------------------------------------------
+
+data Char = C# Char#
+data Int = I# Int#
+data _Word = W# Word#
+data _Addr = A# Addr#
+data Float = F# Float#
+data Double = D# Double#
+
+data _State a = S# (State# a)
+
+----------------------------------------------------
+
+-- Array is from PreludeArray & so can't be defined here.
+-- _ByteArray, _MutableArray & _MutableByteArray are from PreludeGlaArray ...
+
+data _MallocPtr = _MallocPtr MallocPtr#
+#ifndef __PARALLEL_HASKELL__
+data _StablePtr a = _StablePtr (StablePtr# a)
+#endif
+
+----------------------------------------------------
+
+data Integer = J# Int# Int# ByteArray#
+ -- corresponds to GNU multi-prec arith pkg rep
+
+-- Old:
+-- Oddly enough, the Return<blah>GMP<blah> don't need definitions,
+-- because they are only used in "returning" (and so are never
+-- actually built).
+-- New:
+-- Unless you want to write your own code using the Integer primops
+-- -- at which point it becomes essential to have these types. ADR
+
+data _Return2GMPs = _Return2GMPs Int# Int# ByteArray# Int# Int# ByteArray#
+data _ReturnIntAndGMP = _ReturnIntAndGMP Int# Int# Int# ByteArray#
+
+----------------------------------------------------
+
+data StateAndPtr# s elt = StateAndPtr# (State# s) elt
+
+data StateAndChar# s = StateAndChar# (State# s) Char#
+data StateAndInt# s = StateAndInt# (State# s) Int#
+data StateAndWord# s = StateAndWord# (State# s) Word#
+data StateAndFloat# s = StateAndFloat# (State# s) Float#
+data StateAndDouble# s = StateAndDouble# (State# s) Double#
+data StateAndAddr# s = StateAndAddr# (State# s) Addr#
+
+#ifndef __PARALLEL_HASKELL__
+data StateAndStablePtr# s a = StateAndStablePtr# (State# s) (StablePtr# a)
+#endif
+data StateAndMallocPtr# s = StateAndMallocPtr# (State# s) MallocPtr#
+
+data StateAndArray# s elt = StateAndArray# (State# s) (Array# elt)
+data StateAndMutableArray# s elt = StateAndMutableArray# (State# s) (MutableArray# s elt)
+data StateAndByteArray# s = StateAndByteArray# (State# s) ByteArray#
+data StateAndMutableByteArray# s = StateAndMutableByteArray# (State# s) (MutableByteArray# s)
+
+data StateAndSynchVar# s elt = StateAndSynchVar# (State# s) (SynchVar# s elt)
+
+----------------------------------------------------
+-- Bool: is from PreludeCore
+
+data _CMP_TAG = _LT | _EQ | _GT -- for derived comparisons
+
+----------------------------------------------------
+
+data List a = Nil | a : (List a)
+
+----------------------------------------------------
+
+data Tuple0 = Tup0
+data Tuple2 a b = Tup2 a b
+data Tuple3 a b c = Tup3 a b c
+data Tuple4 a b c d = Tup4 a b c d
+data Tuple5 a b c d e = Tup5 a b c d e
+data Tuple6 a b c d e f = Tup6 a b c d e f
+data Tuple7 a b c d e f g = Tup7 a b c d e f g
+data Tuple8 a b c d e f g h = Tup8 a b c d e f g h
+data Tuple9 a b c d e f g h i = Tup9 a b c d e f g h i
+data Tuple10 a b c d e f g h i j = Tup10 a b c d e f g h i j
+data Tuple11 a b c d e f g h i j k = Tup11 a b c d e f g h i j k
+data Tuple12 a b c d e f g h i j k l = Tup12 a b c d e f g h i j k l
+data Tuple13 a b c d e f g h i j k l m = Tup13 a b c d e f g h i j k l m
+data Tuple14 a b c d e f g h i j k l m n = Tup14 a b c d e f g h i j k l m n
+data Tuple15 a b c d e f g h i j k l m n o = Tup15 a b c d e f g h i j k l m n o
+data Tuple16 a b c d e f g h i j k l m n o p = Tup16 a b c d e f g h i j k l m n o p
+data Tuple17 a b c d e f g h i j k l m n o p q
+ = Tup17 a b c d e f g h i j k l m n o p q
+data Tuple18 a b c d e f g h i j k l m n o p q r
+ = Tup18 a b c d e f g h i j k l m n o p q r
+data Tuple19 a b c d e f g h i j k l m n o p q r s
+ = Tup19 a b c d e f g h i j k l m n o p q r s
+data Tuple20 a b c d e f g h i j k l m n o p q r s t
+ = Tup20 a b c d e f g h i j k l m n o p q r s t
+data Tuple21 a b c d e f g h i j k l m n o p q r s t u
+ = Tup21 a b c d e f g h i j k l m n o p q r s t u
+data Tuple22 a b c d e f g h i j k l m n o p q r s t u v
+ = Tup22 a b c d e f g h i j k l m n o p q r s t u v
+data Tuple23 a b c d e f g h i j k l m n o p q r s t u v w
+ = Tup23 a b c d e f g h i j k l m n o p q r s t u v w
+data Tuple24 a b c d e f g h i j k l m n o p q r s t u v w x
+ = Tup24 a b c d e f g h i j k l m n o p q r s t u v w x
+data Tuple25 a b c d e f g h i j k l m n o p q r s t u v w x y
+ = Tup25 a b c d e f g h i j k l m n o p q r s t u v w x y
+data Tuple26 a b c d e f g h i j k l m n o p q r s t u v w x y z
+ = Tup26 a b c d e f g h i j k l m n o p q r s t u v w x y z
+data Tuple27 a b c d e f g h i j k l m n o p q r s t u v w x y z a_
+ = Tup27 a b c d e f g h i j k l m n o p q r s t u v w x y z a_
+data Tuple28 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_
+ = Tup28 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_
+data Tuple29 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_
+ = Tup29 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_
+data Tuple30 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_
+ = Tup30 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_
+data Tuple31 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_
+ = Tup31 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_
+data Tuple32 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_ f_
+ = Tup32 a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_ f_
+
+----------------------------------------------------
+-- Ratio: in PreludeRatio
+
+data Bin = Bin_____________ -- placeholder only
+
+-- IO things: in PreludeIO
+
+--{-# SPECIALIZE data _Lift (State# _RealWorld) #-}
+
+data _Lift a = _Lift a
diff --git a/ghc/lib/prelude/UTypes.hi b/ghc/lib/prelude/UTypes.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_1s.hi b/ghc/lib/prelude/UTypes_1s.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_1s.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_2s.hi b/ghc/lib/prelude/UTypes_2s.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_2s.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_du.hi b/ghc/lib/prelude/UTypes_du.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_du.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_i.hi b/ghc/lib/prelude/UTypes_i.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_i.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_j.hi b/ghc/lib/prelude/UTypes_j.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_j.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_k.hi b/ghc/lib/prelude/UTypes_k.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_k.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_l.hi b/ghc/lib/prelude/UTypes_l.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_l.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_m.hi b/ghc/lib/prelude/UTypes_m.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_m.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_mc.hi b/ghc/lib/prelude/UTypes_mc.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_mc.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_mg.hi b/ghc/lib/prelude/UTypes_mg.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_mg.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_mp.hi b/ghc/lib/prelude/UTypes_mp.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_mp.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_mr.hi b/ghc/lib/prelude/UTypes_mr.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_mr.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_mt.hi b/ghc/lib/prelude/UTypes_mt.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_mt.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_n.hi b/ghc/lib/prelude/UTypes_n.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_n.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_o.hi b/ghc/lib/prelude/UTypes_o.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_o.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_p.hi b/ghc/lib/prelude/UTypes_p.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_p.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/prelude/UTypes_t.hi b/ghc/lib/prelude/UTypes_t.hi
new file mode 100644
index 0000000000..f22d7d3337
--- /dev/null
+++ b/ghc/lib/prelude/UTypes_t.hi
@@ -0,0 +1,9 @@
+interface PreludeBuiltin where
+
+import PreludeCore( String(..) )
+import PreludeRatio( Ratio, Rational(..) )
+
+data Bin
+type String = [Char]
+
+type Rational = Ratio Integer
diff --git a/ghc/lib/tests/Jmakefile b/ghc/lib/tests/Jmakefile
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/ghc/lib/tests/Jmakefile